上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 21 下一页
摘要: 题意: 在一个正常的点可以净化该行该列的所有细胞,判断是否可以净化所有的细胞,并且输出所选的点。思路: 如果可以的话,一定会选n个点。 先判断每一行是否有正常细胞,然后判断每一列是否有,如果都没有肯定不能净化,然后输出每一行或者每一列的第一个正常细胞的位置就好。#include #include #include using namespace std;int n ;char map[110][110];int main(){ cin>>n; int i , x[110] , y[110] , j; memset(x , 0 , sizeof(x)); m... 阅读全文
posted @ 2013-07-20 23:27 xindoo 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题意: 要在N个城市之间修建道路,使得任意两个城市都可以到达,而且不超过两条路,还有,有些城市之间是不能修建道路的。思路: 要将N个城市全部相连,刚开始以为是最小生成树的问题,其实就是一道简单的题目。 要求两个城市之间不超过两条道路,那么所有的城市应该是连在一个点上的,至于这个点就很好找了,只要找到一个没有和其他点有道路限制的即可。//cf 192 B#include #include char map[1005][1005];int main(){ int n, m; while (scanf("%d %d", &n, &m) != EOF) { int 阅读全文
posted @ 2013-07-20 23:21 xindoo 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 题意: 如果某一行没有草莓,就可以吃掉这一行,某一列没有也可以吃点这一列,求最多会被吃掉多少块蛋糕。//cf 192 div2#include #include int vis[11][11];char map[11][11];int main(){ int r, c; while (scanf("%d %d", &r, &c) != EOF) { for (int i = 1; i <= r; i++) scanf("%s", &map[i][1]); memset(vis, 0, sizeof (vis)); ... 阅读全文
posted @ 2013-07-20 23:00 xindoo 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 题目链接 大概题意就是告诉你有个n个小括号,每一个“)”左边有多少个“(”都告诉你了,然后让你求出每一对括号之间有多少对括号(包含自己本身)。思路: 我先计算每个“)”左边有多少个“(”要匹配,然后每遇到一个“)”,然后向前寻找第一个可以匹配的“(”,找到后将其数量减一,这样的话在寻找的过程中经过了几个“)”就表示这对括号里面有多少括号。//poj 1068//2013-07-17-08.45#include #include #include using namespace std;int a[25];int lift[25];int main(){ int t, n; s... 阅读全文
posted @ 2013-07-17 09:08 xindoo 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 先看效果,没有用任何绘图工具,只是运行了一段python代码。代码如下:_ = ( 255, lambda V ,B,c :c and Y(V*V+B,B, c -1)if(a... 阅读全文
posted @ 2013-07-16 08:22 xindoo 阅读(3076) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目就是让你输出n个数的序列,要保证该序列是递增的,并且第i个数的前面不能保护它的约数,我直接先对前100000的素数打表,然后输出前n个,so easy。//cf 191 B#include #include int ans[100005];bool vis[10000000];int main(){ int cnt = 1; for (int i = 2; i 100000) { break; } } int n; while (scanf("%d", &n) != EOF) { ... 阅读全文
posted @ 2013-07-04 22:18 xindoo 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 题目链接 给你一串只有0和1的数字,然后对某一区间的数翻转1次(0变1 1变0),只翻转一次而且不能不翻转,然后让你计算最多可能出现多少个1。 这里要注意很多细节 比如全为1,要求必须翻转,这时候我们只要翻转一个1就可以了,对于其他情况,我们只要计算区间里面如果0多于1,将其翻转后计算1的总数,然后取最大值。//cf 191 A//2013-07-04-22.13#include #include #include using namespace std;int a[105];int cnt[105];int main(){ int n; while (scanf("%d" 阅读全文
posted @ 2013-07-04 22:14 xindoo 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 题目链接有红绿蓝三种颜色的画,每种拿三朵可以组成一束花,或者各拿一朵组成花束,告诉你每种花的数目,求出可能组成最多的花束。如果你的代码过不了,考虑一下 8 8 9这种组合。 因为数据量很大,我的思想就是局部和总体采用不同的策略。#include #include using namespace std;int main(){ int r, g, b; while (cin >> r >> g >> b) { int m = min(r, g); m = min (m, b); int ans = 0; int a = 0... 阅读全文
posted @ 2013-06-29 09:33 xindoo 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 题目链接题意: 有n个男孩和m个女孩,他们要结对跳舞,每对要有一个女孩和一个男孩,而且其中一个要求之前没有和其他人结对,求出最大可以结多少对。如图,一条线代表一对,只有这样三种情况。#include #include #include using namespace std;int main(){ int n, m; while (cin >> n >> m) { int mn = min(n, m); int k = (mn<<1) - 1; k += (max(n, m) - mn); int a = 1, b ... 阅读全文
posted @ 2013-06-29 09:27 xindoo 阅读(201) 评论(0) 推荐(0) 编辑
摘要: //hdoj 3555//2013-06-27-16.53#include #include __int64 dp[21][3], n;int len, bit[21];//dp[i][0] 长度为i 包含49的个数//dp[i][1] 长度为i没有49但以9开头的//dp[i][2] 长度为i 没有49void init(){ dp[0][2] = 1; for (int i = 1; i 4) ans += dp[i-1][1]; if (bit[i] == 9 && bit[i+1] == 4) ... 阅读全文
posted @ 2013-06-27 17:00 xindoo 阅读(149) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 21 下一页