摘要: http://poj.org/problem?id=2115通过这道题有学习了一些新的数论知识,感觉很充实。哈哈。做这道题首先要理解:同于定理:http://baike.baidu.com/view/1490645.htm?fromTaglist这里主要运用了(2)同余有三种说法都是等价的,分别为: (1) a和b是模d同余的. a=b(mod d)这里的=是三道杠的。 (2) 存在某个整数n,使得a=b+nd . (3) d整除a-b.第二就是扩展欧几里德:日华的博客里面写的扩展欧几里德不错:给个链接:http://starry314.blog.163.com/blog/static/... 阅读全文
posted @ 2012-05-06 22:17 E_star 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 摘自上海交大bbs:奋是基础,一切的前提奋之上是忍耐大部分时候大部分人的“习惯”都是跟“效率”作对的奋让你有机会去跟这些习惯做斗争在ACM竞赛的级别,写代码不是在解题,而是实现早已在脑子里准备好的一个逻辑流程。这个追求跟大部分没有训练过的人的习惯相反,要扭转这种习惯,第一步可以做尝试有:1.把准备和敲键盘分割为两个动作。2.把敲键盘和运行分割为两个动作。3.编译错误这件事情几乎总是会发生,但“尝试”减少编译错误的过程,确实对提高准备效率很有帮助帮助。写程序的准备->写代码->测试三阶段,普通人之间差距最小的就是第二个阶段。速度都是在“短到完全不充分或者长得非常没建设性”的准备期,以 阅读全文
posted @ 2012-05-06 21:28 E_star 阅读(652) 评论(0) 推荐(3) 编辑
摘要: http://poj.org/problem?id=3662开始读这个题目的直接理解错了题意,没想到lengths竟然还有几段的意思;题意求从1到n的每段路径下(除去k各最大的)最长最短问题。一个无向图有n个点, m条边, 每边有花费val[i], 可以任意指定有k条边免费, 现要求选择若干条边构成顶点1到顶点n的一条路径, 使得路径上边权最大值(不包括免费边)最小.二分答案, 重新建图, Dijkstra感觉这个讲解比较详细:我们暂且不考虑最优解的问题, 假设A为一个可行解. 可以知道如果A成立, 则B(B>=A)一定成立. 这说明解具有单调性, 即所有可行解是一个单调序列. 我们模仿 阅读全文
posted @ 2012-05-06 15:40 E_star 阅读(288) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3660才开始看到题目给我的第一印象就是拓扑排序,自己yy了一下不对。考虑到如果第i个奶牛的位置确定的话就必须知道他与其他n-1个奶牛的对应关系,所以A->B->C这样A也一定能够打败C所以要有A->C连一条线。用floyd将需要连接的边链接,然后统计每个点的度数只要>=n - 1即可,最后统计个数。这道题目和hdu 的这道题目floyd的灵活运用有异曲同工之妙:http://acm.hdu.edu.cn/showproblem.php?pid=4034View Code #include <iostream&g 阅读全文
posted @ 2012-05-06 10:35 E_star 阅读(242) 评论(2) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3661奶牛在N分钟内锻炼,在每一分钟他可以选择跑步或者休息,每跑一分钟疲劳度加1,每休息一份中疲劳度减1。休息时必须等到疲劳度为0才能继续跑,每分钟所能跑的距离为Di,在跑的过程中疲劳度不能超过m,求奶牛可以跑得最长距离;dp的题目,拿过来果断的想不出状态转移方程啊,对dp的感觉还是这么弱,以后要加强锻炼。一共有n个点,有限制m,这不是很典型的二维dp码?dp[i][j] 表示在i分钟时疲劳度为j所能跑得最远距离则有状态转移方程:如果选择跑步:dp[i][j] = dp[i - 1][j - 1] + val[i] (1<= j &l 阅读全文
posted @ 2012-05-06 10:14 E_star 阅读(205) 评论(0) 推荐(0) 编辑