该文被密码保护。 阅读全文
posted @ 2019-10-13 21:24 Aragaki 阅读(1) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-03-28 19:15 Aragaki 阅读(26) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2018-06-01 14:57 Aragaki 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<cstring> 5 #include<cmath> 6 #include<stdio.h> 7 #include<string.h> 8 #include< 阅读全文
posted @ 2018-04-29 13:02 Aragaki 阅读(518) 评论(0) 推荐(1) 编辑
摘要: #include<bits/stdc++.h> using namespace std; #define y1 y11 #define fi first #define se second #define pi acos(-1.0) #define LL long long //#define mp make_pair #define pb push_back #define ls rt<<1, 阅读全文
posted @ 2019-10-31 20:07 Aragaki 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 给你数轴上的N条线段和K种颜色 K和N1e5 要你把这N条线段染色 使得有K种不同颜色的线段长度最长 首先很容易想到被至少K段线段覆盖的区间是一定有贡献的 接下来就是怎么染色的问题 我们把这N个区间的端点排序一下 把K个颜色放入一个队列 碰到端点是左端点 先检查颜色队列是否为空 为空的话 把这个左端 阅读全文
posted @ 2019-10-30 21:53 Aragaki 阅读(363) 评论(0) 推荐(1) 编辑
摘要: 对于全理/全文分别建一个点代表他 然后S->点/点->T连一条收益边 全理/全文集合里的点向它连INF的边 使得只要存在一个不是理/文 这条边就要被割掉 阅读全文
posted @ 2019-10-30 20:23 Aragaki 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 首先黑白染色 因为相邻的节点颜色必不同 相同颜色的节点之间没有关系(没有边) 然后Add(S,黑色点,A[i][j]) (黑色点,T,B[i][j])(S,白色点,B[i][j])(白色点,T,A[i][j])因为黑色点和白色点同属一个S/T才有额外贡献 所以这里A[i][j],B[i][j]要交换 阅读全文
posted @ 2019-10-30 19:53 Aragaki 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 因为C是不断变化的而且C是和点权相关和边权无关 所以我们可以MCMF但是MCMF的时候不能与C相关 再分析问题 我们可以认为每条路径S->T只覆盖T这个终点 因为题目中说了如果Si != Ti 要多付出 C的代价 假设我们走过的路径形成了一个环则刚好 边数=点数 覆盖完了 如果走过的路径不是一个环 阅读全文
posted @ 2019-10-29 10:15 Aragaki 阅读(176) 评论(1) 推荐(0) 编辑
摘要: #include using namespace std; typedef long long ll; typedef int JQK;int n, m, k, dis[205][205]; int main() { int u, v, c; scanf("%d %d %d", &n, &m, &k); memset(dis, 63, size... 阅读全文
posted @ 2019-10-29 00:31 Aragaki 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 你可以从任意起点开始起跳最多K次 每次跳你可以选择往右或者往下跳 从(x1,y1)跳到(x2,y2) 消耗的能量是曼哈顿距离-1 但是如果每次跳的起点和终点格子里的数字是相同的为X的话你会得到X能量 问你跳K次能不能把整个图刚好跳完(每个点被经过一次) 如果可以的话输出能量的最大值 解:和最小链覆盖 阅读全文
posted @ 2019-10-28 23:58 Aragaki 阅读(176) 评论(0) 推荐(0) 编辑
摘要: A.给你一个字符串 复制K-1次首尾相接 每次你可以把任意位置的字符替换成任意一个 问你最少替换几次可以使得复制后的串任意两个相邻的字符不同 解:一段长度为x的相同字符 要满足条件需要x/2次替换 #include<bits/stdc++.h> using namespace std; typede 阅读全文
posted @ 2019-10-28 23:01 Aragaki 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 给你一棵树 你可以取K条链 一条链为根到叶子的路径 问你K条链最多覆盖树上多少个节点 贪心的做 肯定是每次取最长链 但是取完最长链 一颗树就会变为若干个森林 我们要维护当前所有森林里的最长链 ans数组记录当前节点子树里的最长链长为多少 dfs到一个节点 就把除了最长链上的儿子的ans全部push到 阅读全文
posted @ 2019-10-28 19:20 Aragaki 阅读(428) 评论(0) 推荐(1) 编辑
摘要: 你有一个容量为k的空书架,现在共有n个请求,每个请求给定一本书ai,如果你的书架里没有这本书,你就必须以ci的价格购买这本书放入书架。 当然,你可以在任何时候丢掉书架里的某本书。请求出完成这n个请求所需要的最少价钱。 做法1: 把每个请求拆成两个点 A,B A表示买入 B表示卖出 addedge(S 阅读全文
posted @ 2019-10-24 13:39 Aragaki 阅读(118) 评论(0) 推荐(0) 编辑