随笔分类 - 基本算法————杂七杂八
小知识点什么的
位运算
摘要:1.求该数中1的个数int getsum(int x){ int cnt = 0 ; while(x) { cnt ++ ; x &= x-1 ; } return cnt ;}View Code下面是高效一点的1 int getsum(in...
阅读全文
2014多校第一场D题 || HDU 4864 Task (贪心)
摘要:题目链接题意 : 用N台机器,M个任务,每台机器都有一个最大工作时间和等级,每个任务有一个需要工作时间和一个等级。如果机器完成一个任务要求是:机器的工作时间要大于等于任务的时间,机器的等级要大于等于任务的等级。一台机器只能完成一个任务,一个任务只能被一台机器完成。每个机器完成一个任务公司能够获得50...
阅读全文
POJ 1054 The Troublesome Frog(枚举+剪枝)
摘要:题目链接题意 :给你r*c的一块稻田,每个点都种有水稻,青蛙们晚上会从水稻地里穿过并踩倒,确保青蛙的每次跳跃的长度相同,且路线是直线,给出n个青蛙的脚印点问存在大于等于3的最大青蛙走的连续的脚印个数。思路 : 暴力了一下,顺便剪剪枝就可以过。。。。 1 //POJ1054 2 #include 3...
阅读全文
C语言中随机数的生成
摘要:刚好在找这方面的资料,看到了一片不错的,就全文转过来了,省的我以后再找找不到。 在C语言中,可以通过rand函数得到一个“伪随机数”。这个数是一个整数,其值大于等于0且小于等于RAND_MAX。rand函数和常量RAND_MAX都定义在库stdlib.h之中,这意味着必须在头文件中包含库stdlib
阅读全文
HDU 1098 Ignatius's puzzle
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1098题意 :输入一个K,让你找一个a,使得f(x)=5*x^13+13*x^5+k*a*x这个f(x)%65等于0。思路: 这个题我也不是很会,看了网上的思路才做的。http://www.cnblogs.com/g0feng/archive/2012/08/23/2652996.html//HDU 1098#include #include using namespace std ;int main(){ int k ; while(scanf("%d",&k)!=EOF) {
阅读全文
中国海洋大学第四届朗讯杯高级组 I Cuckoo for Hashing
摘要:http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2719&cid=1203题意 :意思就是哈希来的,具体大意就是说有两个哈希表,然后有这样一组数据,让你把这组数据存到这两个哈希表里,然后不能重复,先让数据往表1里存,就是对表1的长度进行取余,如果余数这个位置没有数就存上,如果有的话,就存上这个数,让原来的数再去表2里存,也是按照这个方式。就是来回踢。。。我觉得。。。。思路:两个哈希表,一个循环找即可。。。当时做的时候把自己绕进去了。。。。#include #include #include #include using namespa
阅读全文
HDU 1031 Design T-Shirt
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1031题意 :n个人,每个人对m件衣服打分,每个人对第 i 件衣服的打分要加起来,选取和前 k 高的输出他们的编号 i ,然后这k个的序号要倒序输出思路 :快排一下就行了。这道题坑了我好几遍TLE,原因是我交的语言是G++而不是C++。。。。。。#include #include #include using namespace std ;struct node{ double sati ; int order ;} a[11100] ;bool cmp(const node &x,const n..
阅读全文
SDUT 2523 OOXX
摘要:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2523思路 :就是先统计一下方阵中1多少2多少,确定一下下一步谁走,然后再从头开始找是0的位置,往上填下一步该谁走的棋,然后判断一下能不能构成三横三竖或者是对角线#include #include #include using namespace std ;int ch[8][3] = {{0,1,2},{3,4,5},{6,7,8},{0,3,6},{1,4,7},{2,5,8},{0,4,8},{2,4,6}} ;int sh[110] ;
阅读全文
HDU1020 Encoding
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1020题意 :给定一个字符串,只包含大写字母,如果字符串中又连续相同的字母,个数大于1的话,就输出该字母连续出现了几个,再加上这个字母,如果只出现一次的话就输出该字母即可。例如ABBCCC,A只出现了一次,就输出A,B出现了两次,就输出2B,C出现了三次,就输出3C。思路 :本来我想用哈希来着,结果想想不对,不用那么麻烦,又改了,因为字符串不是很长,所以从头开始找就行。一定要是连续的,ABAG,输出ABAG。//HDU1020#include #include #include using namespace
阅读全文
CF 136B Ternary Logic
摘要:http://codeforces.com/problemset/problem/136/B题意 :就是说tor是一个三进制的运算,代表的是两个三进制数的运算,两个三进制数按位逐一相加后对三取余,没有进位,但是如果两个没有相同多的位数的话,短的那个0。而那个样例就是10进制的14和10进制的59进行tor运算,就相当于分别转化成三进制在进行tor运算,a tor b = c,给你a和c,让你求b 。思路 : 其实也没什么好说的,题懂了,基本上思路也就出来了,我也就是把a c都转化成三进制的,然后用c的三进制减a 的三进制,最后再转化成10进制即可 。#include#include#inclu
阅读全文
CF 136A Presents
摘要:http://codeforces.com/problemset/problem/136/A题意 :就是输入很多数字,第 i 个数字 pi 代表着第 i 个人的礼物给了第 pi 个人,而让你输出的数字中代表的就是 谁的礼物给了第 i 个人思路 :就这道题我竟然脑子锈了很久才想出来。。。#include#include#includestruct node{ int give ; int given ;}a[110] ;using namespace std ;bool cmp(struct node s,struct node t){ return s.given<t.giv...
阅读全文
CF135A Replacement
摘要:http://codeforces.com/problemset/problem/135/A题意 : 我能说我卡在这个题的题意上很久吗。。。。。这个题就是在数组里找一个数,然后找另一个数把他替换掉,然后再对数组进行排序,输出可能的数组最小值。。。。思路 : 一开始没反应过来,不知道要替换掉哪个数,后来一想才明白,要求最后得到的最小,那就把最大的那个替换掉不就行了,而且最简单的还是替换成1,然后要注意的一点是因为题目中说必须要替换掉一个,而且不能用自己替换掉自己,所以要考虑万一输入的全是1,就要替换成2。。。。#include#include#includeusing namespace std
阅读全文
模板类
摘要:这是我从网上看模板的时候看的一个不完整的代码,然后想弄成一个完整的代码,结果错误特别多,好不容易在ZN还有二货的帮助下弄出来,主要是运算符重载,还有类模板#include#includeusing namespace std;template//类模板是类的抽象,类是类模板的实例,就是说T可以换成任...
阅读全文
SDUT1281Cup
摘要:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1281题意 : 一个杯子,告诉你底面半径,顶端半径,杯子高度,里边装有的热水的量,让你求杯中水的高度思路 : 就是一个简单的数学公式问题,也没有什么要特别注意的地方,杯子有两种形状,圆柱和圆台,圆柱的话直接用体积除以底面积即可得,而圆台的话,就这么去求肯定是求不出来的,所以就要用间接法,就是先把圆台补全,补成一个大圆锥,通过求小圆锥的高h0 = H*r/(R-r),就可以求出多补的小圆锥的体积v0 = (pi*h0*r*r)/3,数学上,这个小
阅读全文
SDUT 1220 完美数
摘要:完美数 Time Limit: 1000ms Memory limit: 65536K题目描述任何一个自然数的约数中都有1和它本身,我们把小于它本身的因数叫做这个自然数的真约数。如6的所有真约数是1、2、3,而且6=1+2+3。像这样,一个数所有真约数的和正好等于这个数,通常把这个数叫做完美数。古希腊人非常重视完美数。毕达哥拉斯发现它之后,人们就开始了对完美数的研究。现在要求输出所有在m和n范围内的完美数。输入输入数据有多组,每组占一行,包括两个整数m和n(1≤m≤n≤99999999)。输...
阅读全文
偶数求和
摘要:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1242这个是SDUTOJ1242http://acm.hdu.edu.cn/showproblem.php?pid=2015HDUOJ2015题目描述有一个长度为n(nint main(){ int i, n, m, b, mark; while (scanf("%d%d", &n, &m) != EOF) { b = 2; mark = 1; for (i = 0 ; i < n / m ;...
阅读全文
2013年山东省第四届ACM大学生程序设计竞赛 Alice and Bob
摘要:Alice and BobTime Limit: 1000ms Memory limit: 65536K题目描述 Alice and Bob like playing games very much.Today, they introduce a new game. There is apolynomial like this:(a0*x^(2^0)+1) * (a1* x^(2^1)+1)*.......*(an-1* x^(2^(n-1))+1). Then Alice ask Bob Q questions. In theexpansion of the Polynomial, Gi..
阅读全文
SUDT2177体检
摘要:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2177题目描述 大家都知道,新生入学的前几周要体检,体检的那一天 HH 早起(九点半)来到了校医院,但是到了之后她发现排队等候体检的人太多了,而且人数在不断的增加。体检需要检查许多个项目,每个项目都需要排队,而且随着时间的推移,每个队列的人数都在慢慢增加。已知每个体检项目的队列都有两个属性(ai, bi):1、如果 HH 在 0 时刻站在了这个队列后,那么她需要 ai 秒就可以完成这个项目的体检;2、如果 HH 没在这个队列中,那么 HH 完成
阅读全文
SDUT2140图结构练习——判断给定图是否存在合法拓扑序列
摘要:拓扑序列的判断方法为不存在有向环,代码实现的话有两种,一种是直接去判断是否存在环,较为难理解一些,另一种的话去判断结点入度,如果存在的入度为0的点大于一个,则该有向图肯定不存在一个确定的拓扑序列 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 int vis[11]; 7 int m,n,u,v; 8 int map[11][11]; 9 int dfs(int u)10 {11 vis[u]=-1;//正在访问12 for(v=1; v 2 #include 3 #include 4 #...
阅读全文