第一次打NOIP的感受:CCF的数据是真的水。
上午万恶的TG和我这个初一的蒟蒻没有关系,刷水题保持手感。
十二点启程去八十中,考场居然没有被分到ssf,QwQ。
万恶的解压密码:&GaiGeKaiFang(40)Nian
T1送命分题,直接while循环getchar读入就好了。顺便熟悉系统,花了0.5h
1 #include<iostream> 2 #include<stdio.h> 3 #include<algorithm> 4 #include<string> 5 using namespace std; 6 int ans; 7 int main() 8 { 9 freopen("title.in","r",stdin); 10 freopen("title.out","w",stdout); 11 while(1) 12 { 13 char ch; 14 ch=getchar(); 15 if(ch==' ') break; 16 else if(ch==' ') continue; 17 else ans++; 18 } 19 printf("%d",ans); 20 fclose(stdin); 21 fclose(stdout); 22 return 0; 23 }
T2本来照着80%的数据打的,暴力枚举在每一个兵营的状态,加了点小优化。没想到拿了满分。花了1h
1 #include<iostream> 2 #include<stdio.h> 3 #include<algorithm> 4 #include<cmath> 5 using namespace std; 6 #define MAXN 999999999 7 long long n,m,a[100005],p1,s1,s2,left_long_sum,right_hu_sum,minn=MAXN,mini; 8 int main() 9 { 10 freopen("fight.in","r",stdin); 11 freopen("fight.out","w",stdout); 12 scanf("%lld",&n); 13 for(int i=1;i<=n;i++) scanf("%lld",&a[i]); 14 scanf("%lld%lld%lld%lld",&m,&p1,&s1,&s2); 15 a[p1]+=s1; 16 for(int i=1;i<=n;i++) 17 { 18 if(i<m) left_long_sum+=(m-i)*a[i]; 19 else if(i>m) right_hu_sum+=(i-m)*a[i]; 20 } 21 for(int i=1;i<=n;i++) 22 { 23 if(i<m) left_long_sum+=(m-i)*s2; 24 else if(i>m) right_hu_sum+=(i-m)*s2; 25 if(abs(left_long_sum-right_hu_sum)==0) 26 { 27 printf("%d",i); 28 return 0; 29 } 30 if(abs(left_long_sum-right_hu_sum)<minn) 31 { 32 minn=abs(left_long_sum-right_hu_sum); 33 mini=i; 34 } 35 if(i<m) left_long_sum-=(m-i)*s2; 36 else if(i>m) right_hu_sum-=(i-m)*s2; 37 } 38 printf("%lld",mini); 39 fclose(stdin); 40 fclose(stdout); 41 return 0; 42 }
T3完全不会,骗了十分。去看T4。
面对T4题面发呆0.5h,放弃人生。
转头去打T3的贪心,想骗点分。花了1.5h,结果一分没骗到,QwQ。
最后得分:100+100+10+0=210。
坐等今年出分数线,感觉会卡线。
在12月4日得知北京一等奖分数线195分。