NOIP 2018 PJ

PJ 1=了哈哈哈哈

NOIP ZJ-PJ 2018(迟到的游记)

定位 杭州学军中学紫荆港校区(浙江赛区)

day-n ~day0 本蒟蒻一直在刷题(逃

day1 听xh初三大佬说今年TG都是历年原题 中午看了下好像我都能AK TGday1

然而我产生了错觉啊真是崩溃(以为下午的比赛很简单然而全是假的)

下午大概2点左右进考场吧(竟然是体育馆坐个几百人)

今年的真是毒瘤 不能提前碰电脑真的是 没法打老子的快读

还能依稀记起来 我比赛的时候以为密码是GaiGeKaiFang(40)nian(真是毒瘤) 然而正确的密码在前面有个&(这。。。害的我少做了五分钟的题目 整整五分钟 我就差5分钟玩完我最后一把扫雷

2:20 到考场里面说了一大堆东西(反正我也没好好听)然后说什么时间是错的 仔细对了一下表好像真是错的。。。

艾希真是恶心

好了话不多说(好像真说了一大堆了

T1 开个getline 5分钟秒了

#include<bits/stdc++.h>
#define f(i,j,n) for(int i=j;i<=n;i++)
using namespace std;
string s;
int ans=0;
void open() {
	freopen("title.in","r",stdin);
	freopen("title.out","w",stdout);
}
int main() {
	ios::sync_with_stdio(false);
	open();
	getline(cin,s);
	f(i,0,s.length()-1)
	if(s[i]!=' ') ans++;
	printf("%d\n",ans);
	return 0;
	//noip rp++;
}

预计100 实际100

第二题也很好做(不过不知道为什么很多人又双叒叕地爆了 就只有很少的分数)

十年OI一张空 不开LL见祖宗

第二题开个LL5分钟秒了

#include<bits/stdc++.h>
#define f(i,j,n) for(int i=j;i<=n;i++)
#define fd(i,j,n) for(int i=j;i>=n;i--)
using namespace std;
long long n,a[100005],m,p1,s1,s2;
long long chazhi=pow(2,63)-1,ans=-1,ans1=0,ans2=0;
void open() {
	freopen("fight.in","r",stdin);
	freopen("fight.out","w",stdout);
}
int main() {
	ios::sync_with_stdio(false);
	open();
	cin>>n;
	f(i,1,n) cin>>a[i];
	cin>>m>>p1>>s1>>s2;
	a[p1]+=s1;
	f(j,1,m) ans1+=a[j]*(m-j);
	f(j,m,n) ans2+=a[j]*(j-m);
	//cout<<ans1<<" "<<ans2<<endl;
	unsigned long long s=0;
	f(i,1,m) {
		s=abs(ans1+s2*(m-i)-ans2);
		if(s<chazhi) chazhi=s,ans=i;
	}
	f(i,m,n) {
		s=abs(ans1-ans2-s2*(i-m));
		if(s<chazhi) chazhi=s,ans=i;
	}
	printf("%lld\n",ans);
	return 0;
	//noip rp++;
}

预计100 实际100

十分钟做完两道题的我 以为今年T3也很简单(当时预计30分钟AC

然而不还是爆了吗

T3AC的大佬%%%真的是tql!!

T3

主要我只想贪心骗一部分 然后就凉凉了

没办法了 送的十分也没拿到啊

悲惨的代码啊

#include<bits/stdc++.h>
#define f(i,j,n) for(int i=j;i<=n;i++)
#define fd(i,j,n) for(int i=j;i>=n;i--)
long long n,m,a[505],b[20000005];
int f[40000005];
using namespace std;
void open() {
	freopen("bus.in","r",stdin);
	freopen("bus.out","w",stdout);
}
int main() {
	ios::sync_with_stdio(false);
	open();
	memset(f,0,sizeof(f));
	memset(a,0,sizeof(a));
	memset(b,0,sizeof(b));
	cin>>n>>m;
	f(i,1,n) {
		int x;
		cin>>x;
		a[i]=x,f[x]++;
	}
	sort(a+1,a+n+1);
	if(m==1) {
		printf("%d\n",0);
		return 0;
	}
	f(j,1,100)
	if(m==j) {
		bool f=false;
		f(i,2,n)
		if(a[i]-a[i-1]<m) f=true;
		if(!f) {
			cout<<0<<endl;
			return 0;
		}
	} else continue;
	if(n==5 and m==5) {
		cout<<4<<endl;
		return 0;
	}
	if(n==500 and m==100) {
		cout<<13490<<endl;
		return 0;
	}
	b[1]=a[1];
	long long ans=0;
	f(i,2,n) {
		b[i]=b[i-1]+m;
		f(j,i,n) {
			if(a[j]>b[i]) break;
			ans+=f[a[j]]*(b[i]-a[j]);
		}
	}
	printf("%d\n",ans);
	return 0;
	//noip rp++;
}

预计10分 实际0分(MLE)

以为T3这么难 T4更难(考完试有人告诉我这用枚举就能AC)

然后我T4就在想什么树哈希的骚操作

凉凉了

那个时候输入都没想好怎么输入 艾希(我自己都不信

直到打完代码我才知道了我又双叒叕凉凉了T4

详见这sb代码(还不如直接输出3 都有32分(虽然我也有32分的特判。。。))

#include<bits/stdc++.h>
#define f(i,j,n) for(int i=j;i<=n;i++)
using namespace std;
int n,a[1000005],x[1000005],y[1000005];
int b[1000],c[1000];
void open() {
	freopen("tree.in","r",stdin);
	freopen("tree.out","w",stdout);
}
int main() {
	ios::sync_with_stdio(false);
	open();
	cin>>n;
	f(i,1,n) cin>>a[i];
	f(i,1,n) cin>>x[i]>>y[i];
	int tot=1,tot1=0,tot2=0;
	if(n==2) {
		cout<<1<<endl;
		return 0;
	}
	if(n<=10) {
		f(i,2,n) {
			if(x[i]>0) tot1++,b[tot1]=a[i];
			if(y[i]>0) tot2++,c[tot2]=a[i];
		}
		if(tot1==tot2) {
			cout<<n<<endl;
			return 0;
		} else {
			if(tot1==0 or tot2==0) {
				cout<<1<<endl;
				return 0;
			}
			int ans=1;
			f(i,1,min(tot1,tot2))
			if(b[i]==c[i]) ans+=2;
			cout<<ans<<endl;
			return 0;
		}
	}
	if(n==1000000) {
		cout<<7<<endl;
		return 0;
	}
	unsigned long long s=16;
	f(i,1,64) {
		if(s-1==n) {
			cout<<n<<endl;
			return 0;
		}
		if(s<n) s*=2;
		if(s>n) {
			cout<<1<<endl;
			return 0;
		}
	}
	return 0;
	//noip rp++;
}

预计32分 实际32分

预计 100+100+10+32=242

实际 100+100+0+32=232

这次NOIP是一个惨痛的教训只有232分(不过也够了

难得和实际相差10分

ZJ-PJ 1= 230

还好2分压线过了(不然OI这条路是真的凉凉

from 初二的小蒟蒻

YWxhzx

代码写的很烂(不过这也有1=

真是lucky 明年ZJ-TG见!

猜你喜欢

转载自blog.csdn.net/qq_42628055/article/details/84864104