摘要:
转:http://blog.sina.com.cn/s/blog_6635898a0100magq.html【转来看看,有时间可以调剂调剂做做数学题】1.burnside定理,polya计数法 这个大家可以看brudildi的《组合数学》,那本书的这一章写的很详细也很容易理解。最好能完全看懂了,理解了再去做题,不要只记个公式。 *简单题:(直接用套公式就可以了) pku2409 Let it Beadhttp://acm.pku.edu.cn/JudgeOnline/problem?id=2409 pku2154 Colorhttp://acm.pku.edu.cn/JudgeOnline/p 阅读全文
摘要:
以前学树型dp就是随便的看了几道题,没有特别注意树型dp中的小分类的总结,直到上次浙大月赛一道很简单的树型dp都不会,才意识到自己太水了~~come on!hdu1561:题目给出了很多棵有根树,如果把每棵树的根节点都与0相连,则就是一棵完整的有根树了(N 2 #include 3 #include 4 #include 5 #include 6 #include 7 #define see(x) cout son[maxn];12 int n, m;13 void dfs(int x){14 int i, j, k;15 if(son[x].size()==0){16 ... 阅读全文
摘要:
突然间想起了关于信仰的话题,自己不想很多伟大和强悍的人,有着坚忍不催的信仰,很多事想做就不顾后果的做了,常常会弄得最后一塌糊涂甚至后悔莫及,回想伴着ACM一路渴磕磕碰碰,走走停停,最终却是一句话让我走到了现在。 每当想要放弃的时候,想想当初坚持的理由。 印象中是寒假过后在人人上看到这句话,并第一次把它记在心里。寒假的时候其实就想过要放弃了,之后看到了这句话,又使水水的celia01留在了ACMer的队伍中。对比今年去年不敢说能力的差别有多大,至少心态确实差很多。今年变得要比去年更认真,更希望独立。时间越来越紧,略感紧迫的我仍然在不时的以一直惯用的自我安慰来放松自己。一贯遇事表面上都是嘻... 阅读全文
摘要:
dp一直弱死了,树型dp很多基本的题都不会,最近在刷树型dp的题,把关于树的最长路的思想总结一下:树的直径:树中距离最远的两点间的距离。下面说几道题:hdu 2196:对于树上(双向边)的每一个节点求出与其距离最远的点的距离。这个主要用的思想是两次dfs:一次dfs将无向图转化为有跟树(所以一开是一定要是建双向边,不然很可能wa或者tle,记录过程中可以开数组记入父亲节点,也可以在dfs递推过程中以栈的形式记录)求出每个跟节点到其所有的叶子节点的最远距离f[i]和g[i]。再一次dfs求出能够由父亲节点转化得到的最大距离h[i],求h[i]的过程中就有可能用到f[i]和g[i]了,因为如果i节 阅读全文
摘要:
一道状态压缩DP,比赛时没时间仔细想了,赛后想了想转移那部分也有点糊里糊涂的,后来请教了一下yk同学,才肯定了一下那个状态表示,后来自己一边探索,一边敲码,一边调试,确认无误后得到1A。看到题很自然的想到从低位开始往高位处理,基本处理加的思路是:在本位上只有可能+1(由1变成0,由0变成1)或者+2(由0变成0,由1变成1,但是存在进位),基本的情况是本位只可能主动+1,如果+2则可能是后一位进位过来了的。基本状态是dp[i][j]:处理玩了第i位(第0~i位异或已经全为0),第i位有j堆需要想第i+1位进位。状态转移:由第i+1位本身的值,加上第i位至第i+1位的进位,会得到一串新的值,但是 阅读全文
摘要:
最大连续子段和有各种方法,很多的都含着暴力的解法,一维O(n)的解法的也已经很熟悉了~现在复习一下,便于进行拓展最大连续子段和a[]数组存储原序列,dp[i]表示处理完第i个数后(包括第i个数在内)的目前最大连续字串dp[i] = dp[i-1]+a[i],如果dp[i] 2 #include 3 4 int main (){ 5 int a[110][110]; 6 int b[110][110]={0};//第k列前j行 7 int n; 8 int i, j, k; 9 int s , max1, max=0;10 scanf("%d",... 阅读全文
摘要:
最长上升子序列(LIS)最长上升子序列是最基本的dp问题,以前一直都只写过O(n^2)的解法,现在终于有时间整理一下了。把poj上的几道最长上升子序列的水题又重新做了一下,主要有1631、2533、3903方法一:O(n^2)dp[i]:表示处理到第i个位置,序列的最长上升子序列末尾为i的长度; a... 阅读全文
摘要:
题意:一个1~n的序列,分别用'I','D'表示序列的升降,如{1,2,4,3},则是属于IID的情况,而1~4中属于IID情况的可以有很多不同的序列,给出序列的I、D表现形式(‘?’表示‘I’或‘D’都可以),求出满足这样要求的有多少种。例如:Sample InputIIIDDIDD?D?? Sample Output122136HintPermutation {1,2,3} has signature "II".Permutations {1,3,2} and {2,3,1} have signature "ID".P 阅读全文
摘要:
3244 一个数学题Difference between TripletsFor every pair of triplets, Ta = (Ia, Ja, Ka) and Tb= (Ib, Jb, Kb), we define the difference value between Ta and Tbas follows:D(Ta, Tb) = max {Ia − Ib, Ja − Jb, Ka − Kb} − min {Ia − Ib, Ja − Jb, Ka − Kb}Now you are given N triplets, could you write a program to 阅读全文
摘要:
题目连接:http://poj.org/problem?id=1147题目描述:就是求解bwt压缩算法的逆过程。一个长度为N的01序列,会有N个不同的轮换(当然,字符相同,其中也可能会有相同的),将这N个不同轮换按字典序排序,取排序后的每个轮换的最后一排,组成一个序列。题中给出压缩后的序列,求原始序列,输出的是字典序最小的那个序列解法:整个解法还挺巧妙的,具体百度上也有解释,简单的根据体重给出的例子说一下:0001100110011001000111000给出的序列中0和1的个数肯定是和原始序列一样的,即由最后一列的数据10010可知原始序列中有2个0和3个1,所以将最后一列(10010)进行 阅读全文