上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页

2012年8月26日

ZOJ Monthly, August 2012 3641 Information Sharing

摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3641题意:有三种操作:1)arriveNamema1a2..am:名字为Name的人到达,带有m个信息:a1a2..am(m<=10)2)shareName1Name2:Name1和Name2共享信息(注意是一直共享的)3)checkName:检查Name拥有的信息,并要求输出。信息最多1000个,现有n个这些操作。思路:并差集,将共享信息的人弄成一个连通分量,并合并信息。View Code #include<stdio.h>#include<s 阅读全文

posted @ 2012-08-26 21:38 aigoruan 阅读(191) 评论(0) 推荐(0)

ZOJ Monthly, August 2012 3635 Cinema in Akiba

摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3635题意:先给一个数列1、2、3……n。然后求第k小,并将它删除。思路:树状数组+二分 模板View Code #include<stdio.h>#include<string.h>#include<iostream>#define lowbit(x) (x)&(-x)using namespace std;const int maxn = 100005;int n,sum[1<<20];int as[maxn]; 阅读全文

posted @ 2012-08-26 21:36 aigoruan 阅读(210) 评论(0) 推荐(0)

ZOJ Monthly, August 2012 3633 Alice's present

摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3633题意:给一个数列,每次询问一个区间第一次出现两次的位置(从右向左)。思路:开一个数组,记录当前值的左边第一次出现的位置。然后用线段树维护这个数组的区间最大值就行了。View Code #include<stdio.h>#include<string.h>#include<map>#include<utility>#include<algorithm>using namespace std;const int 阅读全文

posted @ 2012-08-26 21:32 aigoruan 阅读(208) 评论(0) 推荐(0)

uva 10275 Guess the Number!

摘要: Guess the Number!http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1216题意:给一个大数,问能否写成n^n。如果能,输出n,否则输出-1。思路:除了1^1=1,2^2=4特殊外,其它数n^n所得到的数具有唯一的位数。这样可通过所给的大数的位数确定是哪个数,然后求n^n和所给的大数比较就行了。n^n用快速幂来弄,然后用傅立叶大数相乘模板卡过去了,这个方法可能不是正解。View Code #include<st 阅读全文

posted @ 2012-08-26 20:51 aigoruan 阅读(242) 评论(0) 推荐(0)

2012年8月19日

hdu 4339 Query

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4339题意:给两串字符串,有两个操作:1) 1 a i c - 将第a串的第i个字符修改成c;2) 2 i - 求两个串从第i位置开始的最长相同长度。思路:因为答案只和当前位置前面的有关,所以可以用树状数组。具体如下:如果第i个位置上相同,则为0,不同则为1,这样就可以转化成求第i个位置后面一第一个1的位置。这样用求第k大解之。(加上读入优化rank1)View Code #include<stdio.h>#include<string.h>#include<iostream&g 阅读全文

posted @ 2012-08-19 10:59 aigoruan 阅读(132) 评论(0) 推荐(0)

2012年8月18日

hdu 4366 Successor

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4366线段树题意是要找某个点其子孙中能力值其能力值的中忠诚度最大的。首先可以遍历一遍将树上每个点标记为一维区间上的某个点,且在同一棵子树内的点是连续的一段。将所有点按能力从大到小排序,能力相同的编号小的排在前面,然后扫描一遍,扫描时维护一颗线段树,先查找该点为根节点的子树内的最优值,然后插入该点的忠诚度。维护区间的最大忠诚值就行了。View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 阅读全文

posted @ 2012-08-18 19:16 aigoruan 阅读(182) 评论(0) 推荐(0)

2012年8月15日

hdu 4360

摘要: /*题目大意是给一个n个点m条边的无向图。每条边有权值和一个字母标号,字母标号有四种 'L' 'O' 'V' 'E'现在要从1点到n点去找求找到一条路径,路径按顺序构成了若干个LOVE 注意必须是完整的LOVE然后要求有LOVE的的条件下路径最短,如果有多条最短路,找LOVE最多的那条思路就是拆点将每个点分为四个,代表L,LO,LOV, LOVE四种状态*/#include<stdio.h>#include<string.h>#include<iostream>#include<stdli 阅读全文

posted @ 2012-08-15 20:41 aigoruan 阅读(242) 评论(0) 推荐(0)

ustc 1303 Special tree

摘要: http://acm.ustc.edu.cn/ustcoj/problem.php?id=1303/*题意:给一棵树,树上每个节点都有一个值。对于一棵树,如果断开某一条边,就会形成两个连通分量。现有两种操作:Query x:如果断开第x条边,输出两个连通分量里的最大值,值小的在前面。Add x a b:如果断开第x条边形成的两个连通分量里节点的个数不相等,则节点多的连通分量里都加上max(a,b),节点少的连通分量里都加上min(a,b).思路:原题是这个吧:http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1333dfs遍历一次树,就可以得到一 阅读全文

posted @ 2012-08-15 10:57 aigoruan 阅读(179) 评论(0) 推荐(0)

2012年8月14日

hdu 4358

摘要: 题目:http://acm.hdu.edu.cn/showproblem.php?pid=4358题解:先将树形结构转化成线性结构,这样问题就可以转化为求一个区间内,恰好出现K次的权值有多少种。利用树状数组记录K次的种数.View Code #include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>#include<vector>#define lowbit(x) (x)&(-x)using namespace std;const int m 阅读全文

posted @ 2012-08-14 20:03 aigoruan 阅读(216) 评论(0) 推荐(0)

2012年8月10日

hdu 2807

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2807题意:给n个m*m的矩阵,如果A*B=C,说明A到C有长度1的有向边。现要求任意点间的最短路。思路:读完题会感觉是一个暴力的算法。但时间达到80^5,感觉过不了,随后看人家的解题报告,结果暴力都过了,数据有点水吧。但是后来自己写了个暴力,却超时了。人品呀~~~然后问队友,发现有优化的:如果A*B=C,则A*B*D=C*D,D为m*1的矩阵。设d=B*D,则A*B*D=A*d;同样设dd=A*d,cc=C*D;最后比较dd是否等cc就行了。当然,D最好多取几个,以保证答案正确。View Code #inc 阅读全文

posted @ 2012-08-10 18:35 aigoruan 阅读(172) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页

导航