【NOIP2015 Training Contest #6】
高能的比赛,还有提答,可是难道你认为我真的会吗?!
考试的时候各种暴力~~~ 然后T3光荣地忘记把文件名给改了,少了25分(然而300分的题平均分才60+啊)
于是rank狂降,赶脚很忧桑
ZHOJ-1952 ZCC Loves Sequences
暴力写写调了一大把时间,然后边上的线段树大师说有n^4 log n的做法然后膜了膜%%%
然而还是只拿到了暴力的40分(不兹磁哦),不过想想也是毕竟n=50的时候本机测就已经很虚了。。。
然后讲题的时候满分爷讲了我并没听得清楚的数学方法
然后就开始答案错误~~~
发现自己把ans定义成long long,然而计算的时候里面的数都是int,感觉肯定有猫腻啊
改了就对了QAQ,怪我咯
#include <iostream> #include <cstdio> #include <cmath> #include <cstring> using namespace std; #define mod 100000007 long long ans,l,n,b,a[100]; int main() { while (scanf("%lld%lld",&n,&b)==2) { for (long long i=1;i<=n;++i) scanf("%lld",&a[i]); if (n==1){ printf("%lld\n",b); continue; } ans=0; for (long long i=1;i<=n;++i) if (a[i]!=a[i+1] || i==n) ans=(ans+(b-1)*n-1)%mod; l=0; for (long long i=1;i<=n-2;++i) if (a[i]==a[i+2]&&a[i]!=a[i+1]) ++l; else if (l!=0) ans=(ans+mod-l*(l+1)/2)%mod,l=0; ans=(ans+mod-l*(l+1)/2+2)%mod; printf("%lld\n",ans); } return 0; }
表示这代码长度~~~
ZCC Loves Cards II
dei,这就是一道提答题,然而并不会
表示期望值怎么算?!至今仍抓狂中
于是就只提了第一个点,卷了10分走人~~
%%%random大师,您能分享random的经验吗。。。
ZCC Loves Cards III
我傻B没改文件名,25分啊啊啊啊啊啊啊
这是一次经验教训?惨痛的经历
至今只写了暴力,于是就先发炒鸡暴力的必定TLE的程序,标算据说差分,于是此兔已死~~~
%%%znz大师
#include <fstream> #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <cstring> #include <ctime> #include <cmath> #include <string> #include <algorithm> #include <queue> #include <set> #include <map> using namespace std; #define gch getchar #define mp make_pair #define NN 100010 bool s[NN],f[NN],tmp[NN]; int sum,ans_min,a,b,c,d,e,n,l[NN],r[NN],N; char C_get; void read(int &x) { for(x=0,C_get=gch();(C_get<'0'||C_get>'9')&&C_get!='-'&&C_get!='+';C_get=gch()); if(C_get=='-') { for(C_get=gch();C_get>='0'&&C_get<='9';C_get=gch())x=x*10-C_get+'0'; } else { if(C_get=='+')C_get=gch(); for(;C_get>='0'&&C_get<='9';C_get=gch())x=x*10+C_get-'0'; } } bool Checks() { memcpy(tmp,s,sizeof(s)); for (int i=1;i<=n;++i) { if (f[i]) for (int j=l[i];j<=r[i];++j) tmp[j]=!tmp[j]; } for (int i=1;i<=N;++i) if (!tmp[i]) return 0; return 1; } void bfs(int xx) { if (xx>n) { if (Checks()) if (sum<ans_min) ans_min=sum; return; } f[xx]=1; sum+=r[xx]-l[xx]+1; bfs(xx+1); sum-=r[xx]-l[xx]+1; f[xx]=0; bfs(xx+1); return; } int main() { while (scanf("%d%d%d%d%d",&a,&b,&c,&d,&e)!=EOF) { read(n); if (n==0) { if (b==0 && d==0) puts("0"); else puts("-1"); continue; } N=a+b+c+d+e; memset(s,1,sizeof(s)); for (int i=a+1;i<=a+b;++i) s[i]=0; for (int i=a+b+c+1;i<=a+b+c+d;++i) s[i]=0; for (int i=1;i<=n;++i) { read(l[i]); read(r[i]); } ans_min=0x7fffffff; memset(f,0,sizeof(f)); sum=0; bfs(1); if (ans_min==0x7fffffff) puts("-1"); else printf("%d\n",ans_min); } return 0; }
啊!好大的一场比赛!
已跪
最后膜一膜出题人 %%%__Shi
2015年8月11日 20:22
期待第二场平均分翻倍哦。。。
2015年8月20日 20:05
@__Shi: 厚颜无耻之徒