VIrtuoso

两把多兰剑加个布甲鞋

导航

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

2019年3月31日 #

Educational Codeforces Round 58 (Rated for Div. 2) G 线性基

摘要: 题意 一个有n个数字的数组a[],将区间分成尽可能多段,使得段之间的相互组合异或和不等于零 题解 根据线性基的定义(线性无关),任意线性基组成的集合的异或和都不会等于0,因为假如等于零,说明一定存在一个基能被其他基异或表示 依次将数组a插入线性基中,最后非0线性基的数量就是答案 代码 c++ inc 阅读全文

posted @ 2019-03-31 15:41 VIrtuoso 阅读(137) 评论(0) 推荐(0) 编辑

Codeforces Round #532 (Div. 2) F 线性基(新坑) + 贪心 + 离线处理

摘要: 题意 一个有n个数组c[],q次询问,每次询问一个区间的子集最大异或和 题解 单问区间子集最大异或和,线性基能处理,但是这次多次询问,假如每次重新建立基向量会超时 考虑区间的优先级,假如我只插入不删除的话,区间的优先级和左端点没有关系 贪心一下,只保留后面插入的基,这样就可以离线解决询问,然后查询的 阅读全文

posted @ 2019-03-31 15:24 VIrtuoso 阅读(98) 评论(0) 推荐(0) 编辑

Codeforces Round #548 (Div. 2) F splay(新坑) + 思维

摘要: 题意 有m个人,n道菜,每道菜有$p_i$,$s_i$,$b_i$,每个人有$inc_j$,$pref_j$,一个人可以买一道菜的条件是 1. $p_i \leq inc_j \leq s_i$ 2. $|b_i pref_j| \leq inc_j p_i$ ,问每个人分别能买多少道菜 题解 转化 阅读全文

posted @ 2019-03-31 15:05 VIrtuoso 阅读(95) 评论(0) 推荐(0) 编辑

Codeforces Round #548 (Div. 2) E 二分图匹配(新坑) or 网络流 + 反向处理

摘要: 题意 有n个学生,m个社团,每个学生有一个$p_i$值,然后每个学生属于$c_i$社团, 有d天,每天首先随机去除一个人,然后再从每个社团挑选一个学生(假如社团没有学生就跳过这个社团),使得这些学生组成的集合的mex值最大,输入每天的mex值 题解 假如这道题发现是二分图匹配就很好做 左边用$p_i 阅读全文

posted @ 2019-03-31 14:14 VIrtuoso 阅读(137) 评论(0) 推荐(0) 编辑

CodeCraft-19 and Codeforces Round #537 (Div. 2) E 虚树 + 树形dp(新坑)

摘要: 题意 一颗有n个点的树,有q个询问,每次从树挑出k个点,问将这k个点分成m组,需要保证在同一组中不存在一个点是另一个点的祖先这种情况,问有多少中分组方案 题解 首先解决转移问题,假设一次询问全颗树的分组方案数,定义dp[u][i]为到树节点u,分了i组的方案数,其中num(fa[u])为u的祖先节点 阅读全文

posted @ 2019-03-31 13:24 VIrtuoso 阅读(191) 评论(0) 推荐(0) 编辑

Codeforces Round #548 (Div. 2) C dp or 排列组合

摘要: 题意 一颗有n个点的树,需要挑选出k个点组成序列(可重复),按照序列的顺序遍历树,假如经过黑色的边,那么这个序列就是好的,问有多少个好的序列 题解 黑边不连,红边连,假如两个点不在同一并查集,那么一定经过黑边 定义$dp[i][j][k]$为选择前i个点,起始点为j,是否已经经过黑边(k)的方案数 阅读全文

posted @ 2019-03-31 12:41 VIrtuoso 阅读(146) 评论(0) 推荐(0) 编辑

2019年3月30日 #

Educational Codeforces Round 62 (Rated for Div. 2) C 贪心 + 优先队列 + 反向处理

摘要: 题意 每首歌有$t_i$和$b_i$两个值,最多挑选m首歌,使得sum($t_i$) min($b_i$)最大 题解 假如最小的$b_i$确定了,那么拿得越多越好 枚举最小的$b_i$然后取剩下最大的$t_i$ 两种做法 1.从$b_i$大向小扫,这样用优先队列维护最大的那些$t_i$(丢弃最小的) 阅读全文

posted @ 2019-03-30 22:07 VIrtuoso 阅读(80) 评论(0) 推荐(0) 编辑

Codeforces Round #536 (Div. 2) E dp + set

摘要: 题意 一共有k个红包,每个红包在$[s_i,t_i]$时间可以领取,假如领取了第i个红包,那么在$d_i$后才能领取下一个红包,每个红包价值$w_i$,对方假如有机会领取红包他一定会领取,你有m次阻止对方领取的机会,问对方最少可以拿到多少红包 题解 定义dp[i][j]为前i秒用了j次机会让对方拿到 阅读全文

posted @ 2019-03-30 21:11 VIrtuoso 阅读(125) 评论(0) 推荐(0) 编辑

Codeforces Round #547 (Div. 3) G 贪心

摘要: 题意 在一棵有n个点的树上给边染色,连在同一个点上的边颜色不能相同,除非舍弃掉这个点,问最少需要多少种颜色来染一棵树 题解 选择弃掉度数最高的k个点,然后第k+1个点的度数就是答案 代码 c++ include define N 200005 define pb push_back using na 阅读全文

posted @ 2019-03-30 20:13 VIrtuoso 阅读(88) 评论(0) 推荐(0) 编辑

Codeforces Round #547 (Div. 3) F 贪心 + 离散化

摘要: 题意 一个大小为n的数组a[],问最多有多少个不相交的区间和相等 题解 离散化用值来做,贪心选择较前的区间 代码 阅读全文

posted @ 2019-03-30 19:52 VIrtuoso 阅读(134) 评论(0) 推荐(0) 编辑

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