12 2017 档案
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1303 令c[i]表示前i个数中,比d大的数与比d小的数的差,那么如果c[l]=c[r],则[l+1,r]满足条件 1303: [CQOI2009]中位数图 Description 给出1~n的一个排列
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1800 圆上两条直径构成矩形的对角线 1800: [Ahoi2009]fly 飞行棋 Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列。 请找出这些点
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1257 k%i=k-int(k/i)*i 除法分块,对于相同的k/i用等差序列求和来做 1257: [CQOI2007]余数之和sum Description 给出正整数n和k,计算j(n, k)=k
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1192 1,2,4,8,…… n-2^k 可以表示n以内的任意数 若n-2^k 和 之前的数相等,一个--,一个++ 即可,不影响数量 #include<cstdio> #include<cmath>
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2456 任意删除序列中两个不同的数,众数仍然是众数 不停的删,剩下的最后的数一定是众数 具体实现: 记录一个当前数和出现次数 如果下一个数和当前数不相等,出现次数-1 当出现次数变为0时,当前数换为下一
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1968 换个角度 一个数可以成为几个数的约数 1968: [Ahoi2005]COMMON 约数研究 Description Input 只有一行一个整数 N(0 < N < 1000000)。 Out
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2463 n为偶数时,一定可以被若干个1*2 矩形覆盖 先手每次从矩形的一端走向另一端,后手每次走向一个新的矩形 所以先手必胜 n为奇数时,先手走完一步后,剩下同n为偶数 所以先手必败 2463: [中山
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3513 组成三角形的条件:a+b>c 其中,a<c,b<c 若已知 两条线段之和=i 的方案数g[i] 线段长度>i的 线段数量 t[i] 答案是否可以表示为 Σ g[i]*t[i] ? 不能,因为 有
阅读全文
摘要:http://poj.org/problem?id=2029 单点修改 矩阵查询 二维线段树 Get Many Persimmon Trees Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 4649 Accepted: 3025
阅读全文
摘要:评测地址:https://www.codechef.com/problems/STREETTA 操作1:[l,r] 函数A对ax+b取大 操作2:[l,r] 函数B增加一次函数ax+b 操作3:询问 函数A在x位置的最大值+函数B在x位置的值,没有输出NA r<=1e9 |a|,|b|<=1e9 操
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3527 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei. 以n=4为例: 设数组a[],b[] 令c[]=a[]反转 y[]=c[]*b[] 那么E[i]=x[i]-y[n-i-1]
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2179 FFT做高精乘 #include<cmath> #include<cstdio> #include<complex> using namespace std; #define N 60001 c
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/upload/201712/prob12.pdf 区间的任意一个子区间都满足值域连续 等价于 区间任意一个长为2的子区间都满足值域连续 即 区间任意相邻的两个数 大的 减 小的 <=1 线段树维护即可 #include<cstdio>
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/upload/201712/prob12.pdf dp[len][0/1] 表示节点表示区间长度为len,节点选/不选的 最大匹配 sum[len][0/1] 表示对应dp[len][0/1]的方案数 这里选节点即选节点与其父节点的边
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1060 以激发器所在节点为根 终止节点一定是叶节点 记录点的子树内最深的终止节点 然后从根往下使用道具 道具的使用次数为 整棵树最深的叶子节点深度-本节点子树内最深的叶子节点深度-本节点的祖先节点已使用
阅读全文
摘要:https://www.luogu.org/problemnew/show/1456 题目描述 Once in a forest, there lived N aggressive monkeys. At the beginning, they each does things in its own
阅读全文
摘要:https://www.luogu.org/problemnew/show/3377 主要是删除堆顶元素后并查集关系的维护: 第一种方式(代码): 原来的堆顶是x,删除x后,合并x的左右子树l、r,新的堆顶为y 则令x的祖先指向y 堆顶的直接子节点在并查集中的祖先指向堆顶 这样在寻找l、r的祖先时,
阅读全文
摘要:https://loj.ac/problem/6030 如果矩阵第i列有一个黑色, 那可以用他把第i行全都染黑,也可以使任意一列具有黑色 然后就可以用第i行把矩阵染黑 染黑一列的代价最少是1 染黑一行的代价最少是 白点数+(这一列是否有黑色) 如果没有黑色的话还需要1的代价 使这一列有黑色
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2006 输出最大的k个 sum[r]-sum[l-1] (L<=r-l+1<=R) 之和 当右端点固定不变时,左端点的前缀和越小越好 固定右端点r后,左端点的被限制在了区间[r-R,r-L]内 RMQ查
阅读全文
摘要:https://daniu.luogu.org/problemnew/show/P2744 滚动数组压去第一维:前i种木桶 f[j] 量取体积j最少需要几种木桶 g[j] 体积j的最优解是否使用了第i种木桶 f[j]= f[j-a[i]] + g[j-a[i]]^1 输出方案时用搜索,DP检验 g[
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1589 tarjan缩环后拓扑排序上DP
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2599 点分治 mi[i] 记录边权和为i时的最少边数 先更新答案,再更新mi数组,换根时清空mi #include<cstdio> #include<iostream> #include<algori
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2055 某个国家必须经过vi次, 可以转化为上下界都为vi的边 对这张图做有源汇上下界可行最小费用流 按无源汇上下界可行流建好图,跑超级源点到超级汇点的最小费用最大流即可 #include<cstdio
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2406 设矩阵C=A-B 最小化 C 一行或一列和的最大值 整体考虑一行或者一列的和 二分最大值 这样每一行一列的和就有了范围 |Σai-Σbj|<=mid 去掉绝对值 Σai-mid <= Σbi <
阅读全文
摘要:扩展欧几里得:ax+by=gcd(a,b) 一定有解 能跳到左边一格,即ax+by=-1 若a,b的gcd=1,则一定有解 所以问题转化为 求n个不大于m的数,他们与m的gcd=1 的方案数 容斥原理 把m分解质因数 枚举质因数,若他们的乘积=x 即当前n个数与m的gcd是x的倍数 x的倍数由m/x
阅读全文
摘要:https://daniu.luogu.org/problemnew/show/2687 求方案数: if(f[j]+1==f[i] && a[j]>a[i]) s[i]+=s[j]; 因为序列相同算作同一种方案,所以把相同序列都集中在第一次出现的地方 if(f[i]==f[j] && a[i]==
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3488 题意: 把有向图分成不相交的有向环. 且所有点都只被一个有向环覆盖. 有向环所有权值的总和最小是多少 点i拆为i和i+n 源点向i连流量为1,费用为0的边 i+n向汇点连流量为1,费用为0的边 存在有向边i
阅读全文
摘要:https://www.luogu.org/problemnew/show/1251 样例的构图: 题目描述 一个餐厅在相继的N天里,第i天需要Ri块餐巾(i=l,2,…,N)。餐厅可以从三种途径获得餐巾。 (1)购买新的餐巾,每块需p分; (2)把用过的餐巾送到快洗部,洗一块需m天,费用需f分(f
阅读全文
摘要:理论:http://www.cnblogs.com/acha/p/6735037.html
阅读全文
摘要:https://www.luogu.org/problemnew/show/3358 以区间(1,5),(2,6),(7,8)为例 建模方法一: 建模方法二: 离散化区间端点 相当于找k条费用最大的不相交路径 题目描述 对于给定的开区间集合 I 和正整数 k,计算开区间集合 I 的最长 k可重区间集
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1571 DP不一定全部全状态转移 贪心的舍去一些不合法的反而更容易转移 在一定能力范围内,肯定滑雪所需时间越少越好 当课程的结束时间和能力值改变相同时,肯定课程越晚开始越好 预处理 late[i][j]
阅读全文
摘要:http://codeforces.com/problemset/problem/896/C 题意: 对于一个随机序列,执行以下操作: 区间赋值 区间加 区间求第k小 区间求k次幂的和 对于随机序列,可以使用Old Driver Tree 就是将序列中,连续的相同值域合并为一段 然后暴力操作 #in
阅读全文
摘要:http://codeforces.com/contest/351/problem/E 题意: 给出一些数,可以改变任意数的正负,使序列的逆序对数量最少 因为可以任意加负号,所以可以先把所有数看作正数 序列中的数无论怎么改,都不会改变与绝对值最大的数的逆序对的数量 所以从绝对值最大的数开始,决定它的
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3543 枚举每一个点,作为左下角 然后枚举 相同的x坐标,y坐标 少的那个 作为另一个角 二分判断另外两个角是否存在 #include<map> #include<vector> #include<cs
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3343 high记录原始身高 HIGH记录每块排序之后的身高 不满一块的直接对high操作,重排之后再赋值给HIGH 块内直接打标记 查询时,不满一块的直接查,一整块的在HIGH内二分块内第一个>=C-
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2431 dp[i][j] 表示i的排列,有j个逆序对的方案数 加入i+1,此时i+1是排列中最大的数, 所以放在i+1后面的所有数都会与i+1形成逆序对 转移方程:dp[i][j]=Σ dp[i-1][
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3405 n个牛棚,n-1段 因为要求距离尽量大,而且尽可能多的为d 所以: 第1个牛棚一定在位置1 最后一个牛棚一定在位置s 每段距离不是d就是d+1 有s-(n-1)*d-1段 d+1,其余段距离为d
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1131 dp[i]=dp[fa[i]]-son[i]+n-son[i] #include<cstdio> #include<iostream> using namespace std; #define
阅读全文
摘要:http://codeforces.com/contest/351/problem/B 题意: 给出一个n的排列 第一个人任选两个相邻数交换位置 第二个人有一半的概率交换相邻的第一个数>第二个数的位置;有一半的概率交换相邻第一个数<第二个数的位置 然后两人轮换 问使序列升序,期望最少操作次数 序列升
阅读全文
摘要:http://codeforces.com/problemset/problem/351/A 题意: 2*n个数,选n个数上取整,n个数下取整 最小化 abs(取整之后数的和-原来数的和) 先使所有的数都下取整,累积更改的sum 那么选1个小数上取整,就会使sum-1 整数上下取整不会产生影响 所以
阅读全文
摘要:http://codeforces.com/problemset/problem/351/D 题意: n个数的一个序列,m个操作 给出操作区间[l,r], 首先可以删除下标为等差数列且数值相等的一些数 然后可以对区间剩余数重排 继续删除下标为等差数列且数值相等的一些数 继续对区间进行重排 直至区间内
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2738 整体二分 二维树状数组累积 #include<cstdio> #include<iostream> #include<algorithm> using namespace std; #defin
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2527 整体二分 区间加,单点查,树状数组维护差分序列 注意 累积可能会爆long long,所以一满足要求就break #include<cstdio> #include<iostream> #inc
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1537 朴素的转移:dp[i][j]=max(dp[i][j-1],dp[i-1][j])+p[i][j] 树状数组优化 按x排序,离散化y 枚举,排序保证x,树状数组查询y #include<cstd
阅读全文
摘要:https://daniu.luogu.org/problemnew/show/P2964 dp[i][j] 表示桌面上还剩i枚硬币时,上一次取走了j个的最大得分 枚举这一次要拿k个,转移到dp[i-k][k] dp[i][j]=max(sum[i]-dp[i-k][k]) 因为 上一次取走j个和取
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1207 dp[i] 表示打的最后一只鼹鼠是第i只,最多能打多少只鼹鼠 输出max(dp[i]) 错解: 再加一个转移:dp[i]=max(dp[i],dp[i-1]); 输出dp[m] 错因: dp[i
阅读全文
摘要:https://www.codechef.com/DEC17/problems/CHEFEXQ 题意: 位置i的数改为k 询问区间[1,i]内有多少个前缀的异或和为k 分块 sum[i][j] 表示第i块内,有多少个前缀,他们的异或和为j a[i] 表示 位置i的数 位置i改为k: 若 g=x1^x
阅读全文
摘要:https://www.codechef.com/DEC17/problems/CHEFHAM #include<cstdio> #include<cstring> #include<iostream> using namespace std; #define N 100001 int a[N],b
阅读全文
摘要:https://www.codechef.com/DEC17/problems/VK18 #include<cstdio> #include<iostream> #include<algorithm> using namespace std; #define N 1000001 long long
阅读全文
摘要:https://www.codechef.com/DEC17/problems/CPLAY #include<cstdio> #include<algorithm> using namespace std; char s[21]; int main() { int sumA,sumB; while(
阅读全文
摘要:https://www.codechef.com/DEC17/problems/GIT01 #include<cstdio> #include<algorithm> using namespace std; #define N 101 char s[N]; int main() { int T; s
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3295 正着删除看做倒着添加 对答案有贡献的数对满足以下3个条件: 出现时间:i<=j 权值大小关系:x[i]>x[j] 位置关系:pos[i]<pos[j] 或者是 出现时间:i<=j 权值大小关系:
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3262 三维偏序 第一维排序,第二维CDQ分治,第三维树状数组 #include<cstdio> #include<iostream> #include<algorithm> #define lowbi
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1176 CDQ分治 #include<cstdio> #include<iostream> #include<algorithm> #define lowbit(x) x&-x using namesp
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1935 二维偏序问题 排序x,离散化树状数组维护y 1935: [Shoi2007]Tree 园丁的烦恼 Description 很久很久以前,在遥远的大陆上有一个美丽的国家。统治着这个美丽国家的国王是
阅读全文
摘要:https://daniu.luogu.org/problemnew/show/P2875 dp[i]表示前i-1个字符,最少删除多少个 枚举位置i, 如果打算从i开始匹配, 枚举单词j,计算从i开始往后,匹配完单词j的位置pos,删除的字母个数sum dp[pos]=min(dp[i]+sum)
阅读全文
摘要:https://daniu.luogu.org/problemnew/show/2889 按右端点从小到大排序后DP dp[i] 到第i个时间段的最大产奶量 不能按左端点排序,第i段由第j段更新时,第j段可能没挤奶,i,j都处于第k(k<j)段之后的休息时间 题目描述 Bessie is such
阅读全文
摘要:http://codeforces.com/contest/896/problem/B 题意: 交互题 n张卡片填m个1到c之间的数,1<=n*ceil(c/2)<=m 最后填出一个单调非降序列,输出每次填的位置 <=c/2: 从左开始扫描,遇到空位 或 比原数更优(<原数)就放 >c/2: 从右开
阅读全文
摘要:http://codeforces.com/contest/896/problem/A 第i个字符串嵌套第i-1个字符串 求第n个字符串的第k个字母 dfs #include<map> #include<cstdio> #include<iostream> using namespace std;
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3144 如果D=2 ,两个点,高度为4,建图如下 2018.3.20 考试代码 #include<queue> #include<cstdio> #include<iostream> using nam
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3532 如果没有字典序的限制,那么DP拆点最小割即可 加上字典序的限制: 按c从小到大枚举最小割边集中的边,去掉这条边对网络的影响,继续枚举直至获得最小割边集 判断是不是最小割边集中的边: 在残量网络中
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=4519 最小割树 #include<queue> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> us
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2229 最小割树介绍:http://blog.csdn.net/jyxjyx27/article/details/42750833 http://blog.csdn.net/miaomiao_ymxl/
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1432 http://blog.sina.com.cn/s/blog_86942b1401014bd2.html #include<cstdio> #include<algorithm> using n
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3504 往返n遍,即单向2*n遍 危桥流量为2,普通桥流量为inf 原图跑一遍最大流 交换b1,b2再跑一遍最大流 如果两次的结果都等于(an+bn)*2 则可以 证明参见http://www.cnbl
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3931 在最短路网络上跑最大流 #include<queue> #include<cstdio> #include<cstring> #include<iostream> #include<algori
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1066 每个柱子拆成两个点 i<<1,i<<1|1,之间连流量为高度的边 如果第i根柱子有蜥蜴,S向i<<1连边,流量为1 如果第i根柱子能跳出去,i<<1|1向T连边,流量为inf 如果第i根柱子能跳
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3124 第一问: dfs1、dfs2 dfs2中记录dis[i]表示点i距离最长链左端点的距离 第二问: 所有直径的交集一定是最长链上连续的一段 dfs3记录最长链, 从最长链上每个点i开始dfs4,记
阅读全文
摘要:https://www.luogu.org/problemnew/show/P2766 注:题目描述有误,本题求的是最长不下降子序列 方案无限多时输出 n 网络流求方案数,长见识了 第一问: DP 同时得到f[i] 表示 以第i个数为开头的最长不下降子序列长度 第二问: 每个点拆出2个点 i<<1,
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3130 第一问就是个最大流 第二问: Bob希望总费用尽量大,那肯定是把所有的花费加到流量最大的那一条边上 Alice希望总费用尽量小,那只能选 单位最大流量 最小的方案 二分单位最大流量即可 注:流量
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1189 二分答案 源点向人连边,流量为1 门拆为mid个点,同一个门的第j个点向第j+1个点连边,流量为inf 若第i个人第k秒到达第j个门,第i个人向第j个门拆出的第k个点连边,流量为1 所有门向汇点
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=3993 二分答案 源点向武器连 mid*攻击力的边 机器人向汇点连 防御力 的边 武器i能攻击机器人j,i向j连 >=j防御力的边 判断最大流是否=防御力 将时间、防御力 * 10000,避免浮点数运算
阅读全文
摘要:https://daniu.luogu.org/problemnew/show/3153
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=1305 每个人拆为喜欢(yes)和不喜欢(no)两个点 二分答案 1、每两个人之间只能跳一次 喜欢则 男yes i 向 女yes j 连流量为1的边 不喜欢则 男no i 向 女no j 连流量为1的边
阅读全文
摘要:void read(int &x) { x=0; char c=getchar(); while(!isdigit(c)) c=getchar(); while(isdigit(c)) { x=x*10+c-'0'; c=getchar(); } } void read(int &x) { x=0; int f=1; char c=getchar...
阅读全文
摘要:http://poj.org/problem?id=3216 n个地点,m个任务 每个任务有工作地点,开始时间,持续时间 最少派多少人可以完成所有的任务 传递闭包之后最小路径覆盖 Repairing Company Time Limit: 1000MS Memory Limit: 131072K T
阅读全文
摘要:http://poj.org/problem?id=2594 题意: 给出一个由n个顶点m条边组成的有向无欢图 求最少用多少路径,使得这些路径可以覆盖所有的点 每个点可以被多条路径覆盖 先floyd求一遍传递闭包,然后最小路径覆盖 Treasure Exploration Time Limit: 6
阅读全文
摘要:http://poj.org/problem?id=1419 题意: 一张图黑白染色,相邻点不能都染黑色,最多能染几个黑色点 最大点独立集 但是图不能同构为二分图,不能用二分图匹配来做 那就爆搜吧 还可以转化为补图的最大团问题 Graph Coloring Time Limit: 1000MS Me
阅读全文
摘要:http://poj.org/problem?id=3308 r*c的地图 每一个大炮可以消灭一行一列的敌人 安装消灭第i行的大炮花费是ri 安装消灭第j行的大炮花费是ci 已知敌人坐标,同时消灭所有敌人,问最小花费 花费为所有大炮消费的乘积 乘转加:log(a*b*c)=log(a)+log(b)
阅读全文
摘要:http://www.lydsy.com/JudgeOnline/problem.php?id=2007 1、所有点的高度一定在0~1之间, 如果有一个点的高度超过了1,那么必定会有人先上坡,再下坡,一定不如一直上坡优 2、所有点高度一定可以转化为非0即1 比如:0->0.3->0.5->1 等价于
阅读全文

浙公网安备 33010602011771号