摘要: http://poj.org/problem?id=3273二分查找一个数组大小为n,分成连续的m部分,求和最大的那个部分把n分成m部分,由于弱菜代码能力比较差,处理下标问题很晕。。。改用“栈”模拟,不用考虑下标问题#include <stdio.h>#include <stack>#define N 100100using namespace std;int n, a[N];int need(int x){ int i, temp; stack<int> s; for(i=1; i<=n; i++) { if(s.empty() || s.top() 阅读全文
posted @ 2013-01-21 16:45 Yuan1991 阅读(177) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1496求组合数 1 #include <stdio.h> 2 #include <string.h> 3 4 int C(int x, int y) 5 { 6 return y? C(x-1, y-1)*x/y: 1; 7 } 8 9 int main()10 {11 char s[12] = "\0";12 int a[12] = {0};13 int i, j, sum, n, flag;14 while(~scanf("%s", s+1))15 {16 flag =.. 阅读全文
posted @ 2013-01-21 00:19 Yuan1991 阅读(109) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1083哪个门前的走廊,被经过的次数最多,这个次数就是答案 1 #include <stdio.h> 2 3 int main() 4 { 5 int t, n, i, a, b, sum[432] = {0}, result; 6 scanf("%d", &t); 7 while(t-- && scanf("%d", &n)) 8 { 9 while(n-- && scanf("%d%d", &a, &b) 阅读全文
posted @ 2013-01-20 23:55 Yuan1991 阅读(124) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1189DP,“数塔” 1 #include <stdio.h> 2 #include <string.h> 3 4 int a[56][56]; 5 long long dp[56][56]; 6 7 long long gcd(long long x, long long y) 8 { 9 return y? gcd(y, x%y): x;10 }11 12 13 int main()14 {15 int i, j, k, n, m;16 long long r;17 char s[1234] = "\. 阅读全文
posted @ 2013-01-20 23:52 Yuan1991 阅读(144) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1018DP,写的好蒙。。。 1 #include <stdio.h> 2 #include <map> 3 4 using namespace std; 5 6 #define N 110 7 8 int b[N][N], p[N][N]; 9 int dp[N][N*N];10 const int maxint = 1<<30;11 12 int main()13 {14 int i, j, t, n, m, x, y, k;15 float max1, temp1;16 map<int, int 阅读全文
posted @ 2013-01-20 23:51 Yuan1991 阅读(130) 评论(0) 推荐(0) 编辑