我先吐吐槽: 我人生的一次NOIP复赛凉了!!! 第一题还好,luogu评测满分。 第二题也好,luogu评测80分。 第三题凉了,没看清数据(骗0得10分),骗了个25,得0分!!! 第四题凉了,骗分骗了个1,得分24分!!! (以上全为洛谷NOIP2018民间测试)总分204分!!! 吐槽完毕!
好,让我把我前两题代码公开吧!!!
第一题:水题,直接模拟,唯一的坑是输入中的“输入只有一行”,所以换行符无效。 代码:
include
include
include
include
include
using namespace std; string s;int l,i,ans; int main(){ getline(cin,s);//输入一行字符串(包括空格) l=s.size(); for(i=0;i<l;i++) if (s[i]!=' ') ans++; printf("%d",ans); return 0; }
第二题:水题,模拟得80,可能要高精度,不过不用高精度可以得80分 上80分代码:
include
include
include
include
using namespace std; const int N=1e5+100; typedef long long ll; long long a1,a2,minn; int a[N],i,n,p,m,s1,s2,p1; int main(){ // freopen("t1.in","r",stdin); scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]); scanf("%d%d%d%d",&m,&p1,&s1,&s2); a[p1]+=s1; for(i=1;im) a2+=(ll)s2(i-m); if (abs(a1-a2)<minn){ minn=abs(a1-a2); p=i; } if (i<m) a1-=(ll)s2(m-i); if (i>m) a2-=(ll)s2*(i-m); } printf("%d",p); return 0; }