上一页 1 2 3 4 5 6 7 8 ··· 13 下一页
摘要: Codeforces Round #521 (Div. 3) E. Thematic Contests 题目传送门 题意: 现在有n个题目,每种题目有自己的类型要举办一次考试,考试的原则是每天只有一种题目类型一种题目类型只能出现在一天每天的题目类型不能相同,而且后一天的题目数量必须正好为前一天的两倍 阅读全文
posted @ 2019-01-30 16:44 better46 阅读(184) 评论(0) 推荐(0) 编辑
摘要: Codeforces Round #529 (Div. 3) 题目传送门 题意: 给你由左右括号组成的字符串,问你有多少处括号翻转过来是合法的序列 思路: 这么考虑: 如果是左括号 1)整个序列左括号个数比右括号多 2 2)在这个位置之前,所有位置的前缀左括号个数都不少于前缀右括号个数 3)在这个位 阅读全文
posted @ 2019-01-30 00:24 better46 阅读(329) 评论(0) 推荐(0) 编辑
摘要: hdu6311Cover 题目传送门 题意:有最少用多少条边不重复的路径可以覆盖一个张无向图。 分析:对于一个连通块(单个点除外),如果奇度数点个数为 k,那么至少需要max{k/2,1} 条路径。将奇度数的点两两相连边(虚边),然后先从奇度数的点出发,搜索由其出发的欧拉回路。需要将遍历的边和其反向 阅读全文
posted @ 2019-01-29 17:07 better46 阅读(242) 评论(0) 推荐(0) 编辑
摘要: hdu3664 Permutation Counting 题目传送门 题意: 在一个序列中,如果有k个数满足a[i]>i;那么这个序列的E值为k,问你 在n的全排列中,有多少个排列是恰好是E值为k的序列? 思路: 定义dp[i][j]: 在 i 的全排列中,E值为j的个数;则从i转移到i+1时,有三 阅读全文
posted @ 2019-01-29 14:53 better46 阅读(235) 评论(0) 推荐(0) 编辑
摘要: hdu 6301 Distinct Values 题目传送门 题意: 给你m个区间,让你求出一个长度为n的区间且满足在这些区间的数不重复, 并且要求字典序最小 思路: 如果我们已经求出这个序列了,你会发现,如果大的区间已经满足条件了, 那么它包含的小区间也已经满足了。 然后它要求字典序最小,这个从左 阅读全文
posted @ 2019-01-28 22:07 better46 阅读(206) 评论(0) 推荐(0) 编辑
摘要: hdu6298 Maximum Multiple 题目传送门 题意: 给你一个整数n,从中找出可以被n整除的三个数x,y,z; 要求x+y+z=n,且x*y*z最大。 思路: 开始一看T到1e6,n也到1e6,就想到打表,可是打表就只输出最大值 没有把取的那三个数也数出来,纠结了许久。 正解就是设a 阅读全文
posted @ 2019-01-28 16:22 better46 阅读(163) 评论(0) 推荐(0) 编辑
摘要: Codeforces Round #535 E2-Array and Segments (Hard version) 题意: 给你一个数列和一些区间,让你选择一些区间(选择的区间中的数都减一), 求最后最大值与最小值的差值最大,并输出选择的区间 思路: 在n=300的时候,我们是枚举每个数作为最小值 阅读全文
posted @ 2019-01-27 22:21 better46 阅读(283) 评论(0) 推荐(0) 编辑
摘要: F. MST Unification 题目传送门 题意: 给你n个顶点,m条边;保证没有重边,其中存在多个MST(最小生成树), 你可以修改一些边的权值,让其中有且仅有一个最小生成树,求最少操作的边数。 思路: 最小生成树算法的加工,我们从kruskal算法入手,kruskal就是先对边排序, 然后 阅读全文
posted @ 2019-01-27 21:50 better46 阅读(115) 评论(0) 推荐(0) 编辑
摘要: const int maxn=100005; const int maxm=200005; int T,n,m; int tot,head[maxn],rd[maxn]; ll dis[maxn]; int u[maxm],v[maxm],c[maxm],a[maxm],b[maxm]; ll ans; struct { int v; ll cost; int nex... 阅读全文
posted @ 2019-01-26 22:31 better46 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 欧拉函数求个数 时间复杂度 O(sqrt(n)) ll eular(ll n){ ll ret=1,i; for (i=2;i*i<=n;i++) if (n%i==0){ n/=i,ret*=i-1; while (n%i==0) n/=i,ret*=i; } if (n>1) ret*=n-1; 阅读全文
posted @ 2019-01-22 21:08 better46 阅读(620) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 13 下一页