上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 48 下一页
摘要: 题目链接:Around the World 题意: 给你n个点,有n-1条边,现在这n-1条边又多增加了ci*2-1条边,问你有多少条欧拉回路 题解: 套用best定理 Best Theorem:有向图中以 i 为起点的欧拉回路个数为以 i 为根的树形图个数 ×(( 每个点 度数 −1)!)。 Ma 阅读全文
posted @ 2016-10-02 20:51 bin_gege 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 题目链接:hdu_5908_Abelian Period 题意: 给你n个数字,让你找出所有的k,使得把这n个数字分为k分,并且每份的数字种类和个数必须相同 题解: 枚举k,首先k必须是n的约数,然后就能算出每个数字应该出现多少次,O(n)检验即可。 1 #include<bits/stdc++.h 阅读全文
posted @ 2016-10-01 21:56 bin_gege 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题目链接:hdu_4283_You Are the One 题意: 有n个人,每个人有个屌丝值,如果果他是第K个上场,不开心指数就为(K-1)*D,然后有个小黑屋,可以调整他们的出场顺序,现在让你调整顺序,使不开心指数最小 题解: 考虑区间DP,dp[i][j]表示第i个人到第j个人这个区间的不开心 阅读全文
posted @ 2016-09-27 23:10 bin_gege 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 题目链接:hdu_5903_Square Distance 题意: 给你一个长度为n的a串,一个数m,现在让你构造一个长度也为n的b串,使这个串是由两个相同的串拼起来的,并且和a串对应的位不同的数量为m 题解: 1.可以知道构造的串前面和后面都是相同的,所以只需要构造前半段就行了,当然你可以分类讨论 阅读全文
posted @ 2016-09-25 16:51 bin_gege 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 题目链接:hdu_5904_LCIS 题意: 给你两串数,让你找这两串数的最长公共子序列,并且这个最长公共子序列是连续的数值 题解: 我们首先先分别处理出a,b的每个数的最长连续的长度 然后随便找一串数来更新一下答案就行了 1 #include<cstdio> 2 #include<algorith 阅读全文
posted @ 2016-09-24 22:36 bin_gege 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 题目链接:hdu_5890_Eighty seven 题意: 50个数,10W个询问,每次问删掉第i,j,k个数后,是否存在一种选10个数和为87的方案,只需要输出 ’Yes’ 或者 ’No’ 题解: 暴力:不同的询问大概2W个,每个暴力bitset DP,抠一抠能卡着过。优化1:先求出一组解,如果 阅读全文
posted @ 2016-09-23 23:58 bin_gege 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 题目链接:hdu_5900_QSC and Master 题意: 有n个数,每个数有个key值,有个val,如果相邻的两个数的key的gcd大于1那么就可以得到这两个数的val的和,现在问怎么取使得到的和最大 注意:1 2 2 4,第2个和第3个取掉后,第一个就和第4个相邻了 题解: 这是一道区间D 阅读全文
posted @ 2016-09-23 20:33 bin_gege 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 题目链接:hdu_5883_The Best Path 题意: n 个点 m 条无向边的图,找一个欧拉通路/回路使得这个路径所有结点的异或值最大。 题解: 节点 i 的贡献为((du[i] +1/ 2) % 2)* a[i] 如果为欧拉回路,需要枚举一下起点,然后取一下最大 1 #include<b 阅读全文
posted @ 2016-09-23 11:08 bin_gege 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题目链接:hdu_5878_I Count Two Three 题意: 给你一个n,让你找满足那个式子的不比n小的最小数 题解: 先上个预处理,然后二分查找就行 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;i++) 3 阅读全文
posted @ 2016-09-20 19:01 bin_gege 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 题目链接:hdu_5889_Barricade 题意: 有n个点,m条边,每个边的长度都为1,每个边有一个消耗w,如果要阻断这条路,那么就会消耗w,现在让你阻断点1到点n的所有最短路,问你最小的消耗是多少 题解: 先用dij算出最短路,然后再枚举每一条边,如果dis[u]+1=dis[v],那么久在 阅读全文
posted @ 2016-09-20 16:34 bin_gege 阅读(163) 评论(0) 推荐(0) 编辑
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 48 下一页