摘要:
题意:给定一个N*M 的网格,每个网格上有一个硬币,或上或下,游戏结束的条件为说有的硬币都朝上,选择一个以N,M为右下角,右上角为朝上硬币的矩形,使得里面所有的硬币都翻转,游戏结束的步数是奇数还是偶数解题思路:典型的博弈问题,如果右下角为 朝上,则翻完所有的硬币必定为基数,不然则偶数解题代码: 1 #include 2 #include 3 #include 4 int a[105][105]; 5 int n , m ; 6 int main() 7 { 8 int t ; 9 scanf("%d",&t);10 while(t--)11 {12 ... 阅读全文
摘要:
题意:每一个“hehe”子串都可以看成另一个意思,问一个句子最多能有多少个意思解题思路:dp,如果有连续的hehe 把每个hehe当成一个石头,那么就可以抽象成从n个连续的时候中抽出k个石头,且两两不相邻,对于从第二个石头开始的石头,他的结果取决于 取或不取 它前面那个石头的结果 所以 dp[1][i] = d[2][i-1] ; dp[2][i] = d[1][i-1] 所以 dpsum[I] = dpsum[i-1] + dpsum[i-2];是个斐波那契数列。解题代码: 1 #include 2 #include 3 #include 4 #include 5 #define ... 阅读全文
摘要:
题意:区间更新,区间求和解题思路:本来以为自己搞出了区间更新A这题很简单呢,没想到这里面还有这么多学问,不过幸好坚持没有看解题报告和代码,自己对线段树的理解又更深了一层!主要是向下更新的时候有问题,自己调试的时候又出现了一个非常sb的常识性错误,然后就wrong到现在,主要的解题思路还是线段树的区间操作解题代码: 1 #include 2 #include 3 #include 4 #define MAXN 200005 5 struct node 6 { 7 long long left ,right,mid; 8 long long num ; 9... 阅读全文