考试总结 模拟60
Posted casun547
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了考试总结 模拟60相关的知识,希望对你有一定的参考价值。
T1
再不会,也有能拿的分,心态!!状态!!T2的式子要考虑推一下不能弃掉T3看错题了!!
可以说是三道原题
T1约瑟夫问题
f[i]=(f[i-1]+m)%i cout<<f[n]+1;
这里可以打表找规律从数学角度优化成$log$级别的
1 #include <iostream> 2 #include <cstring> 3 #include <cstdio> 4 5 using namespace std; 6 7 int m,n; 8 int main() 9 int T; 10 for(cin>>T;T;T--) 11 scanf("%d%d",&n,&m); 12 int id=0; 13 if(n>m) 14 for(int i=1;i<=m;i++) 15 id=(id+m)%i; 16 for(int i=m+1;i<=n;i++) 17 id=(id+m)%i; 18 int jumpl=(i-id)/(m-1); 19 if(i+jumpl<=n) 20 id=(id+jumpl*m)%(i+jumpl); 21 i+=jumpl; 22 23 else 24 id=id+(n-i)*m; 25 break; 26 27 28 else 29 id=0; 30 for(int i=1;i<=n;i++) 31 id=(id+m)%i; 32 33 printf("%d\\n",id+1); 34 35
T2「树状数组」
T3「线性DP」「最长公共上升子序列」
这是lyd上原题P264
把两个dp结合真的很神
以上是关于考试总结 模拟60的主要内容,如果未能解决你的问题,请参考以下文章