08 2011 档案

摘要:Twilightgod CUST http://blog.csdn.net/twilightgodAekdycoin FZU http://hi.baidu.com/aekdycoinForeverlin HNU http://hi.baidu.com/forverlin1204/blogMatrix67 PKU http://www.matrix67.com/blog/watashi ZJU http://watashi.ws/blog/tag/zoj/Sha崽 HDU http://www.notonlysuccess.comChenyajun http://www.chenyajun.c 阅读全文
posted @ 2011-08-17 10:06 Veegin 阅读(291) 评论(0) 推荐(0)
摘要:搜索总是让我难堪,递归的细节让我头脑混乱....真要好好把搜索过一遍这道题比较水,不过状态不好,修改很久才AC。#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 1000#define M 30char ch[N][M];int visited[N],n;int cmp(const void *a, const void *b){ char *c = (char *) a; char *d = (char *) b; return strcmp(c,d);}int DFS_Vi 阅读全文
posted @ 2011-08-15 21:09 Veegin 阅读(400) 评论(0) 推荐(0)
摘要:与背包算法一样,这算法也是一个非对称算法。这里不写证明之类的定理推论了,需要的话网上可以搜到到很多,书本例如算法导论也有详细的证明。简写一下算法的步骤:•(1)选择两个大素数P、Q ,其中P!=Q(这里使用 Miller_Rabin近似算法 确定素数)(2)计算N=P*Q (3)选择一个小奇数作为公钥(加密密钥)E,使其与(P-1)*(Q-1)互质(使用 扩展欧几里德算法 求出)(4)选择私钥(解密密钥)D,满足如下条件: (D*E) mod (P-1)(Q-1)=1(使用 扩展欧几里德Extend_Euclid(E,(P-1)*(Q-1))=1,求E的逆元,即为D)(5)加密时,明文PT计算 阅读全文
posted @ 2011-08-11 19:13 Veegin 阅读(2564) 评论(0) 推荐(0)
摘要:这是一个非对称算法,即可生成多个不同的公钥,分发给其他人,然后其他人用各自的公钥加密文件,而算法只生成一个私钥(自己保存),这私钥可解密不同公钥加密的文件。在不知道私钥的前提下,破解文件是一个NP难问题。下面贴上高老师的讲义:1.背包算法基于背包问题的简化版,即子集和问题(Subset sum)。2.子集和问题:给定一个整数集A(俗称为背包)和整数b,要求找出A的一个子集,使得其中元素之和等于b。3.子集和问题是NP完全问题。然而若集合A是一个超级增长序列(Superincreasing),则可以使用简单的贪婪策略在多项式时间求解。4.超级增长序列指集合中后一个元素大于前面所有元素之和。如 { 阅读全文
posted @ 2011-08-08 10:22 Veegin 阅读(5577) 评论(0) 推荐(1)
摘要:在刚接触这道题的时候,确实无从下手,因为我记得高老师说过01背包算法并不是一个好算法,时间复杂度是指数级。这题容量为实数时,更是无法直接解决。参考了一下别人的思路,发现原来可以把银行总存款作为背包容量,把被抓率转换成逃脱率(即1-被抓率)作为背包物件的价值,进行动态01决策。求出比最低逃脱率大的第一个逃脱率,这时的偷得的存款即为最大可偷的存款。代码如下://以总资产为容量,以逃脱率为价值,DP求出第一个比最低逃脱率大的最大偷钱数目#include <stdio.h>#define M 100050#define N 150double C[M],r[N];//r[N]为逃脱率,w[ 阅读全文
posted @ 2011-08-02 21:03 Veegin 阅读(540) 评论(0) 推荐(0)
摘要:一直都在个人苦攻,感觉进度很慢很慢,受的打击也不少。终于在今个暑假,我们争取到了首次的暑假集训,实在是相当来之不易啊。 为期5个多星期的集训,已经过去一半了,高老师的讲课也完结了。高老师的课含金量很高!大部分的基础算法算是通学了一遍。这东西要自学真不知道要什么时候才能学完。现在有了点基础,就能走得更远了。很感谢高老师对我们ACM学习的大力支持,谢谢老师!当然,王书记也很重视我们的ACM学业,没了王书记,这次集训不可能搞得起来。 在这里总结一下,一共是学了如下算法排序与顺序统计合并排序(分治) 快速排序动态规划贪心算法图算法-DFS和BFS图算法-强连通分量图算法-最短路径-Dijstra、B. 阅读全文
posted @ 2011-08-01 18:59 Veegin 阅读(499) 评论(1) 推荐(1)
摘要:集训期间学会了动态规划的01背包,想去刷几道水题看看代码有没有问题,没想到遇到POJ3624,我原来的二维背包因为数据太大而不能AC,然后我到网上查看一下别人的方法,才看见,背包问题可以用一维!仔细想一下,对啊,这道题,用一维数组更新其值就可以了。于是重写代码,AC。代码如下:#include <stdio.h>#include <string.h>#define N 3500#define M 13000int d[N],w[N],val[M],n,W;void knapsack(){ int i,j; memset(val,0,sizeof(val)); for(i 阅读全文
posted @ 2011-08-01 17:34 Veegin 阅读(2455) 评论(0) 推荐(0)