摘要: 题意:Alice和Bob每次翻一个矩形区域的硬币,直到所有硬币都为负面时轮到的那个人输。由于每次都会翻右下角的硬币,如果右下角的硬币为正,那么结束时翻硬币的次数一定是奇数,那么Alice赢,如果右下角硬币为反,则Bob赢。#includeint main(){ int n,m; int T,a; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { ... 阅读全文
posted @ 2013-08-01 21:58 yongren1zu 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 一道dp题,转移方程不是自己推出来的。题目的意思是用‘qnmlgb’替换‘hehe’,可以替换也可以不替换,问有多少种情况。如果结尾不是‘hehe’,那么dp[i]=dp[i-1],如果是是‘hehe’,dp[i]=dp[i]+dp[i-4],因为最后一个可以换也可以不换,如果进行替换则是dp[i-4]。#include#include#define M 10007char s[10100];int dp[10100]={1};int main(){ int T,cas=1; scanf("%d",&T); while(T--) { scanf("%s&q 阅读全文
posted @ 2013-08-01 20:41 yongren1zu 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 这道题是让求派出机器人的最少数量,乍一看以为是简单的求最小路径覆盖,后来发现错了,因为有的点可以走多次,而二分中每个点只能走一次,所以要先用floyd进行传递闭包,然后用二分#include#include#define N 505int match[N],visit[N];int n,m;int g[N][N];int DFS(int u){ int i; for(i=1;i<=n;i++) if(!visit[i]&&g[u][i]) { visit[i]=1; if(match[i]==-1||DFS(match[i])) { ... 阅读全文
posted @ 2013-08-01 15:25 yongren1zu 阅读(170) 评论(0) 推荐(0) 编辑