首页 > TAG信息列表 > ToT2

「HNOI2013」消毒

弱化一下,先考虑在二维上解决问题。 题目就转化为:有 \(n\) 个点 \((i, j)\) 需要被覆盖,而我们每次可以选一行或一列去覆盖,求覆盖所有点的最少选择次数。 如果我们对于每一个 \((i, j)\),我们把第 \(i\) 行和第 \(j\) 列连边,显然能构成一张二分图。 图中每一条边就是一个需求,而每选择

2021“MINIEYE杯”中国大学生算法设计超级联赛(5)题解

1003 手玩一下发现如果是一维的只能有两个,二维的只能有三个。 所以得出结论,一维能分开一个。 code: int T;ll n,k; int main(){ scanf("%d",&T);while(T--) scanf("%lld%lld",&n,&k),puts(n<=k+1?"Yes":"No"); } 1004 考虑枚举两个串的开头位置,那么可以通过尺取\(O(n^2)\)得到

括号序列的dp问题模型

括号序列的dp问题模型 Codeforces314E ◦给定一个长度为n的仅包含左括号和问号的字符串,将问号变成左括号或 右括号使得该括号序列合法,求方案总数。 ◦例如(())与()()都是合法的括号序列。 ◦ n<=3000。 在括号序列问题中,总是把左括号看作+1,右括号看作-1,要使括号序列合法,只需满足

2019年牛客多校第二场 F题Partition problem 爆搜

题目链接 传送门 题意 总共有\(2n\)个人,任意两个人之间会有一个竞争值\(w_{ij}\),现在要你将其平分成两堆,使得\(\sum\limits_{i=1,i\in\mathbb{A}}^{n}\sum\limits_{j=1,j\in\mathbb{B}}^{n}w_{ij}\)最大。 思路 看到这一题第一想法是状态压缩然后枚举状态,然后人就没了。 其实这题就

生成树,2019NOI金牌营6,思维好题

正题        因为这次比赛撞题了,我就凭借着我曾经的记忆慢慢的写出来了这一题。(现场做出来的是真的强        Portal        我们考虑先把1到n的边先建出来,如果已经有n-1条黑边或者白边,那么就直接输出。        否则就存在一个点使得它的两边一边是黑

CCPC2018 桂林 A: Array Merge(贪心、带权并查集合并)

时间限制: 1 Sec  内存限制: 128 MB提交: 37  解决: 3[提交] [状态] [命题人:admin] 题目描述 Given two arrays A, B of length n and m separately, you have to merge them into only one array C (of length n + m) obeying the rule that the relative order of numbe

[题解] P1342 请柬

洛谷 P1342 思路 分别建一张原图,一张与原图中所有边方向相反的反图。在两张图上分别跑一遍SPFA,再计算出两次dis数组的和即可。 Code #include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<queue>typedef long long LL;#define maxn 1000005using names

简单的排列问题的总结

核心可以被归纳为C(n, m)(从n个对象中挑选出m个的方案个数)排列的代码实现 n! C(n, m)= ———— m!(n-m)! 举例: A1037: 问题描述   试用递归方法编程求解下楼问题的方案数:从楼上到楼下共有h个台阶,下楼每步可走1个台阶、2个台阶或者3个台阶   问可走出多少种方案