首先 感谢xiaoyao24256大佬给我的blog(虽然只用一天QWQ)
这几天来到了浙江集训 爽爆(假的qwq)
尽管这几天学到了好多知识 但我还是个蒟蒻555
从昨天的ACM赛先说吧
一开始的时候 我们小组比其他小组早A了前2道题(虽然不是最早)
然后然后然后我就很开心
于是我们就卡在了第三题……
我们组一个大佬想出来了一个gcd的算法(我不会告诉你他就是给我号的人)
结果不知道什么玄学原因 我们组否认了这个算法 去刚第四题
为什么要否认呢?我也不知道啊……鬼知道那就是正解qwq
附上核心代码
1 read(p) , read(q) , read(b); 2 3 register ll Gcd = gcd(p,q); 4 q /= Gcd; 5 Gcd = b; 6 7 for(; q!=-1; ) { 8 Gcd = gcd(q,Gcd); 9 q /= Gcd; 10 if(Gcd == 1) break; 11 } 12 13 if(q == 1) puts("Finite"); 14 else puts("Infinite");
第四题……不想说什么了
我推了快1个小时的数学解
然后推出来了一个玄学的东西:
if len%4 == 1 输出头尾各一个数
if len%4 == 2 输出头尾各2个数
if len%4 == 3 输出第一个数、第三个数、倒一、倒三这些数
if len%4 == 0 输出所有数
正当我推得非常开心的时候 验证了下len=12的情况
然后就发现这个做法是错误的
于是 MMP ……
比赛结束之后我才发现这道是一道非常!水的!区间DP
哇哇哇气死了
依然附上代码
1 for(register int i=n-1; i>=1; i--) { 2 for(register int j=i+1; j<=n; j++) { 3 f[i][j] = f[i][j-1] ^ f[i+1][j]; 4 g[i][j] = maxest(f[i][j],g[i][j-1],g[i+1][j]); 5 } 6 }
我们最后选择直接去看第7题
想出了两个类似正解的方法
嗯其实不是正解 最后测了WA的不要不要的
逃)
嗯那两个算法就是打表和随机数
事实证明打表能过更多的点
诶呀打表是我想出来的~
原文:https://www.cnblogs.com/xiaoyao24256/p/9111843.html