上一页 1 ··· 33 34 35 36 37 38 39 40 41 ··· 44 下一页
摘要: 题目链接和上个题一样。。 1 #include <stdio.h> 2 #include <string.h> 3 #include <math.h> 4 #define eps 0.0000001 5 int gcd(int a,int b) 6 { 7 return b == 0?a:gcd(b,a%b); 8 } 9 int main()10 {11 double sum;12 int i,n,m;13 __int64 s;14 while(scanf("%d%d",&n,&m)!=EOF)15 {16 sum = 阅读全文
posted @ 2012-07-24 17:24 Naix_x 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题目链接看着真痛苦啊,看组合数学上的东西看不懂。。。看了好多人的题解。。根本不懂为毛线是这样做。。。公式是肿么推导的。。。PS:和外校的某牛交流了后,给我发了个PDF的程序设计中的组合数学,话说那本书是以前还看过,确实这本书上的例题更简单一点。。。貌似这样的,这个公式G是代表可以置换的方式个数,如此题,可以转0个 1个 ...n-1,共n种可能,翻转也有n种置换方式,奇偶数的时候情况不同,而后便就是代表每一种置换都不改变的可能,如这个题,有4个点的时候,转0度的时候肯定都不改变,3^4,而转1个也就是90度的时候,有3种(颜色全部相同的时候),转2个的时候有3^2次方,也就是不相邻的两个点要颜 阅读全文
posted @ 2012-07-24 16:22 Naix_x 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 题目链接用优先队列,特别方便。 1 #include <iostream> 2 #include <cstdio> 3 #include <queue> 4 #include <vector> 5 #include <algorithm> 6 using namespace std; 7 int main() 8 { 9 int n,i;10 __int64 sum,a,b;11 scanf("%d",&n);12 priority_queue< __int64 ,vector<__int64& 阅读全文
posted @ 2012-07-23 13:21 Naix_x 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 练习STL中的map。 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <map> 5 using namespace std; 6 map <string,int> p; 7 int main() 8 { 9 int i,j,len,z;10 char str[101];11 char o[4];12 while(scanf("%s",str)!=EOF)13 {14 if(str[0] == '*' 阅读全文
posted @ 2012-07-23 13:02 Naix_x 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 题目链接注意两点,倒着搜,效率高,注意0和1时候的特判。。。忘了UVA的longlong,CE一次。 1 #include <stdio.h> 2 #include <string.h> 3 int p[100],z; 4 long long n; 5 void dfs(long long n,int step) 6 { 7 int i; 8 if(z) return ; 9 if(n == 1)10 {11 z = 1;12 for(i = step-1; i >= 1; i --)13 printf("... 阅读全文
posted @ 2012-07-22 20:48 Naix_x 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 题目链接找出最高一个线段覆盖吧,很明显的O(n^2)的DP,注意排序的时候按长度排序。WA了一次,没有注意到题目中their endpoints do not coincide,他们的端点不能重合,我还以为输出要顺序有错误。。。得亏又看了遍题目。。 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 struct segment 5 { 6 int x,y,len; 7 int num; 8 }p[501]; 9 int o[501],k[501],q[501];10 int 阅读全文
posted @ 2012-07-22 15:56 Naix_x 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 题目链接二维DP,开两个标记数组记录前i个数1的个数,和0的个数。1Y。状态转移方程:p[i][j] = min(p[i-k][j-1]+(sum1(i)-sum1(i-k))*(sum0(i)-sum0(i-k))(开始的时候i-k想成k了。。自己试了几个数据没过,手算查错) 1 #include <stdio.h> 2 #include <string.h> 3 #define N 10000000 4 int p[501][501],sum1[501],sum0[501]; 5 int main() 6 { 7 int n,m,i,j,k; 8 scanf(&qu 阅读全文
posted @ 2012-07-22 11:16 Naix_x 阅读(311) 评论(4) 推荐(0) 编辑
摘要: 题目链接看到题目,没想到有什么好办法,也想到了树状数组,然后二分查找。。。本来感觉复杂度特别高,交了几次超时,然后我发现看别人用相同思路却过了,我写的可能死循环了。不过没查到数据,也可能效率低了。查查白书看看书上代码。while(str < end)//二分找到关键值{ mid = str+(end-str)/2; if(p[mid] == a) break; else if(p[mid] > a) end = mid; else str = mid+1;}此题代码 1 #include <stdio.h> 2 #includ... 阅读全文
posted @ 2012-07-21 20:55 Naix_x 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 题目链接也是很久以前做过的题了,TLE了5次,和前几天做的POJ那个上的题差不多,开两个标记数组,分别记录左右第一个比他小的位置。 1 #include <stdio.h> 2 #include <string.h> 3 #define N 100001 4 __int64 p[N],right[N],left[N]; 5 int main() 6 { 7 int i,n,j; 8 __int64 max; 9 while(scanf("%d",&n)!=EOF)10 {11 if(!n) break;12 max = 0;13 ... 阅读全文
posted @ 2012-07-21 17:24 Naix_x 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 题目链接几个月之前做的一个题了,开始想时就看出应该是个01背包问题,又发现不太一样,貌似应该是有种贪心策略,把最大的挑出来最后还有5块钱的再买,剩下的体积用01背包去求最优选择,当时WA了3次,以为算法有问题,难道用o(n^3)算法吗。。枚举每一种物品然后用01背包的取得的最优解+物品的价值,然后最后找最大的。。感觉复杂度有点高啊。。。然后就放下了,今天又想起来了,搜了下题解,原来是饭卡开始的时候<5 的时候 情况漏了。。。。我晕。。。。 1 #include<stdio.h> 2 #include<string.h> 3 int p[1001],k[1001]; 阅读全文
posted @ 2012-07-21 15:59 Naix_x 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题目链接本来想练习一下堆排序,试了交了几次发现不是MLE,就是WA。。。发现,直接排序会超内存,用优先队列吧,顺便学习一下。。。下个学期学C++,好好学习STL。这个题可恶的精度,unsigned int 刚刚好。。 1 #include <iostream> 2 #include <cstdio> 3 #include <queue> 4 #include <vector> 5 #include <algorithm> 6 using namespace std; 7 int main() 8 { 9 int n,i;10 long 阅读全文
posted @ 2012-07-21 15:17 Naix_x 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 题目链接今天学习排序,冒泡和选择,无视了。。。直接上堆排序。。 1 #include <stdio.h> 2 #include <string.h> 3 #define N 1000001 4 int p[N],n,m; 5 void heapjust(int x,int len) 6 { 7 int i,num; 8 num = p[x]; 9 for(i = x*2;i <= len;i *= 2)//二叉树的左儿子是2*x右儿子是2*x+110 {11 if(i < len&&p[i] < p[i+1])i ++;//判断左右儿子 阅读全文
posted @ 2012-07-21 11:06 Naix_x 阅读(204) 评论(2) 推荐(0) 编辑
摘要: 题目链接普通的DFS。 1 #include <stdio.h> 2 #include <string.h> 3 char p[5][5]; 4 int max,o[5][5],n; 5 int judge(int x,int y) 6 { 7 int i,z = 1; 8 for(i = x+1;i <= n-1;i ++) 9 { 10 if(o[i][y] == 2) 11 { 12 z = 0; 13 break; 14 } 15 e... 阅读全文
posted @ 2012-07-20 21:13 Naix_x 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题目链接暴力水过的方式是多样化的。。 1 #include <stdio.h> 2 #include <string.h> 3 #include <math.h> 4 #include <stdlib.h> 5 #define eps 0.000000001 6 int p[5],n,m,num; 7 struct tri 8 { 9 int a,b,c,d;10 }o[100001];11 int cmp(const void *a,const void *b)12 {13 struct tri *p = (struct tri*)a;14 s 阅读全文
posted @ 2012-07-20 16:39 Naix_x 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题目链接题目 都没看,直接看样例,直接拍代码,1Y。 1 #include <stdio.h> 2 #include <string.h> 3 int p[101][101]; 4 int str1[101],str2[101]; 5 int main() 6 { 7 int i,j,n,m,num = 0; 8 while(scanf("%d%d",&n,&m)!=EOF) 9 {10 if(!n && !m)break;11 num ++;12 memset(p,0,sizeof(p));13 for(... 阅读全文
posted @ 2012-07-20 15:27 Naix_x 阅读(156) 评论(0) 推荐(0) 编辑
上一页 1 ··· 33 34 35 36 37 38 39 40 41 ··· 44 下一页