自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Codeforces 1130 Connect——水题

康复训练 #include <bits/stdc++.h> using namespace std; const int maxn = 100; int n; int r1, c1, r2, c2; char str[maxn]; int G[maxn][maxn]...

2019-03-09 22:10:07 118 0

原创 Codeforces 1131D Gourmet choice——差分约束

题意:给定一张比较表,给行列赋值使得比较表成立,并且最大值最小 思路:差分约束,求解最长路 /** * x > y : x >= y + 1; * x < y : x <= y - 1; * x = y : x >= y ...

2019-03-09 21:34:51 132 0

原创 Codeforces 1107E Vasya and Binary String——dp

参考poj1390 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 105; int n; char s[maxn]; int a[maxn];...

2019-02-10 23:31:35 120 0

原创 Codeforces 1102F Elongated Matrix——状压dp

dp[s][i][j]表示集合s以i开头以j结尾的最大k值 #include <bits/stdc++.h> using namespace std; typedef long long ll; const int INF = 0x3f3f3f3f; const i...

2019-01-31 23:26:00 125 0

原创 Codeforces 1077F2 Pictures with Kittens (hard version)——单调队列优化dp

题意: 从n个数中选x个,要求任意连续k个必须有数被选中,问最后x个数的和最大是多少 1<=n,k<=5000, 1<=x<=n 思路: 设dp[i][j]为选中a[i]且选了j个时的最大和,则dp[i][j] = max{dp[t]...

2018-12-19 22:43:22 106 0

原创 Codeforces 1076G Array Game——线段树+博弈

题意: 有一种双人游戏规则如下:n个格子排成一排,编号1~n,每个格子都有一个数值a[i],开始把骰子扔到1号格子,并把1号格子的数值减1,然后双方轮流操作,每次操作从骰子所在的格子(假设编号为x)开始,选择[x,x+m]并且数值大于0的格子,将骰子扔到这个格子上,并把这个格子的数值减1,不能操...

2018-12-11 11:02:23 170 0

原创 Codeforces 1076F Summer Practice Report——贪心+dp

题意:你有n个纸条,现在你要用0和1去写满这些纸条(每个纸条只能写一行),每个纸条都给出了一个x和一个y,表示要求写的0的数量和1的数量,并且规定任何时候都不能有超过k个0连续,任何时候都不能有超过k个1连续,注意假设写完一个纸条和它后一个纸条是连续的,也就是说一个纸条末尾的0或1也要算在它后一个...

2018-12-04 17:47:39 149 0

原创 Codeforces 1076D Edge Deletion——最短路+dfs

题意: n个点m条边的无向连通图(无自环、重边),现在要删除一些边使得图最多剩下k条边,并且这样的点尽量多:这个点到1号节点的最短路不变 思路: 建出最短路树,统计边数,然后跑一遍dfs,在回溯的时候判断边数与k的关系,若边数>k就使边数减一,否则记录答案 #include...

2018-11-19 10:12:29 79 0

原创 Codeforces 1076E——回溯

题意:给出一棵以1为根的有根树,边权全部为1,点权初始全部为0,给出m个查询,每个查询给出三个变量v d x,表示将v节点的子节点(包括自己)中与v之间的距离<=d的节点的点权增加x,问最后每个节点的点权是多少 1<=n<=3e5, 1<=...

2018-11-15 14:00:26 141 0

原创 斯坦纳树——hdu 4085

最近打全国高校绿色计算机大赛遇到了一个斯坦纳树(决赛第二阶段第三题),当时网上找了模板水过去了,赛后学习一下 【一】什么是斯坦纳树 斯坦纳树问题是组合优化学科中的一个问题。将指定点集合中的所有点连通,且边权总和最小的生成树称为最小斯坦纳树(Minimal Steiner Tree),其实最小生...

2018-11-12 20:32:57 115 0

原创 ZOJ 4061 Magic Multiplication——暴搜

题意:规则举例:1234*5678=5678101214161516212420242832,现在给出最终串,以及两个原串的长度,问两个原串是多少,设原串为A B,多解先令A尽量小,然后再令B尽量小 所有传的长度都在2e5以内,除非串只有一个0,否则没有前导0 思路:现场赛的时候拿到这个题一开...

2018-11-09 22:09:14 108 0

原创 Codeforces 1073A——防自闭

#include <bits/stdc++.h> using namespace std; const int maxn = 1010; int n; char s[maxn]; int cnt[26]; int main() { scanf("%d...

2018-11-02 20:43:16 118 0

原创 Codeforces 1073B——防自闭

#include <bits/stdc++.h> using namespace std; const int maxn = 2e5 + 10; int n, a[maxn], b[maxn], pos[maxn], vis[maxn]; int main() { ...

2018-11-02 20:28:30 104 0

原创 Codeforces 1073C——思维

题意: 一个机器人在(0,0),给出n个指令,指令的种类为L R D U,分别代表左移一步 右移一步 下移一步 上移一步,现在给出一个终点( x,y),要通过改变序列中的一些指令使得机器人最终停在(x,y),并使得花费最小,输出最小花费(原本就能达到输出0,无解输出-1),只允许把一个指令更改...

2018-11-02 20:15:48 111 0

原创 Codeforces 1073D——暴力

题意 n个售货车排成一个圈,编号1~n,每个售货车卖一种冰激凌,价格为a[i],数量无限,现在你有T块钱,从1号点出发,无限转圈,每到一个售货车,如果你能买一个冰激凌,那么一定买一个,否则不买,直到钱少到无法买冰激凌为止,问你能买多少个冰激凌 1<=n<=2e5,1...

2018-11-02 08:53:02 220 0

原创 Codeforces 1073E——状压+数位dp

题意 输入l r k,输出区间[l,r]内数位种数不超过k的数字之和,比如l=10,r=50,k=1,答案就是11+22+33+44=110 1<=l<=1e18,1<=e<=1e18,1<=k<=9 思路 ...

2018-11-01 22:06:56 183 0

原创 CodeForces - 572C——思维

题意:给定三个木棍,长度为a b c,现在可以给任意木棍增加任意长度(整数),但是增加的长度总数不能超过l(3e5),问有多少种增加方式使得增加完长度后的三个木棍可以构成一个三角形 思路:刚开始想到枚举一个最长的木棍,然后枚举该木棍增加的长度,然后计算另外两个木棍的合法情况数,但是不是很好计算,...

2018-10-31 14:27:05 77 0

原创 HDU 6237 A Simple Stone Game——思维

题意:有n(1e5)堆石子,第i堆石子有a[i](1e5)个,现在可以进行任意次操作,每次操作可以把一个石头从一堆挪到另一堆,问最少操作几次可以达成这个条件:存在一个x,使得每堆的石子数量都是x的倍数 思路:首先对石子总数进行质因分解,x一定是这些素因子中的一个,这个是我凭感觉蒙的,事实证明确实...

2018-10-29 16:56:10 72 0

原创 HDU - 6274 Master of Sequence——二分

按a的值分组,处理一下余数,二分一下就可以了 但是我二分上界设置的1e18,在计算过程中爆炸了,正确的上界应该是1e14 真的调了很久才意识到这个问题。。。 明天就打区域赛了。。。 #include <bits/stdc++.h> using namespac...

2018-10-25 15:09:00 73 0

原创 poj2954 Triangle——pick定理

题意:给定一个三角形,三角形的三个点都是整数点,问有多少个整数点严格在三角形内部 思路:典型的pick定理题目,公式为s=a+b/2-1,s为整数顶点的多边形面积,a为它内部的整数点, b为它边上的整数点(包括顶点),那么题目要求的其实是b=(2*s+2-a)/2 s可以通过向量的叉积运算得到...

2018-10-24 16:49:19 55 0

原创 HDU 6266 Hakase and Nano——思维

首先明确这是一个不公平的游戏,作弊的那个人一定更有利,由此猜测所有作弊的人必胜,除非条件实在太差, 我们要找的就是这些作弊也挽回不了的局面,思考后可发现作弊的一方拿只有一个石子的石头堆没有办法,因此从这上面出发,得到下面的结论: 1.先手时必胜,除非石子总数是三的倍数且每一堆都只有一个石子 2...

2018-10-22 20:43:44 73 0

原创 HDU 5558 Alice's Classified Message——后缀数组+set+二分+rmq

15合肥签到题,不会后缀自动机只能用后缀数组来凑了 我们要完成的工作是对s的每一个后缀suf[i],找以j(0<=j<i)为起点的一个子串,使得这个子串与suf[i]的公共前缀尽量长 其实后缀数组的做法挺明显的,就是对于一个后缀suf[i],首先将它前面的后缀的ra...

2018-10-22 00:18:38 57 0

原创 ZOJ - 3981 Balloon Robot——思维

先选1作为起始点跑一遍不高兴值,按不高兴值从小到大排序,然后顺序扫描,当要把第i个位置变为0时,实际上就是将i前面的元素+m,然后整体-unhappy[i] #include <bits/stdc++.h> using namespace std; const in...

2018-10-18 23:15:43 54 0

原创 HDU 5977 Garden of Eden——点分治

上来按照dp的思想没什么头绪,因为5e4*(1<<10)有点大,所以往暴力上想了,树上暴力的话一般是往点分治上想,稍加思考发现这题只要枚举子集就可以在n(log(n))^2内解决,注意root是全局变量会改变,要存一下,因为这个直接自闭 #include &...

2018-10-18 15:58:29 67 0

原创 HDU 5976 Detachment——贪心

很容易想到最优策略是2*3*4一直乘到前缀和小于n的最靠后的位置,设这个位置为p 当segma(2,p)==n时明显答案就是mul(2,p) 但是当segma(2,p) != n时会有一个余项,设为need,need=n-segma(2,p),显然现在项数不会再增加了,我们只能把need按照一...

2018-10-17 22:34:43 54 0

原创 HDU - 4010 Query on The Trees——Link Cut Tree

LCT模板题,link和cut是基本操作 更新一条链(u,v)就是做 mroot(u); access(v); splay(v)操作;然后给v打上标记,splay时上下推即可 求一条链(u,v)的最小值,同样做 mroot(u); access(v); splay(v);然后求v的最小值即可 ...

2018-10-16 22:35:39 54 0

原创 HDU - 5514 Frogs——容斥

假设a和b都是m的因子,设t=lcm(a,b),若t<m,则t也是m的因子 根据这个结论我们可以在m的因子中进行容斥,因子用fac数组保存,设vis[i]为fac[i]需要贡献的数量,num[i]表示fac[i]实际贡献的数量,那么fac[i]应该对答案贡献(等差数列之和)*(vi...

2018-10-13 17:17:33 52 0

原创 UVALive 3403 Mobile Computing——爆搜

有点像状压dp的爆搜 #include <bits/stdc++.h> using namespace std; typedef pair<double, double> P; const int maxn = 10; const dou...

2018-10-13 10:51:13 70 0

原创 UVALive 4726 Average——斜率优化

维护下凸线,然后二分或者单调队列 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm&...

2018-10-11 15:38:16 48 0

原创 HDU - 5955 Guessing the Dice Roll——ac自动机+概率dp+高斯消元

要写的就是代码中的solve函数,看一下就明白了,其余的都是模板,挺水的 #include <bits/stdc++.h> using namespace std; const int maxn = 105; int T, N, L, data[maxn], id[...

2018-10-09 12:11:57 68 0

原创 HDU - 5956 The Elder——斜率优化dp

状态转移方程很好想 写出来发现是经典的斜率优化 由于状态本质上是在树链上转移, 所以回溯的时候要撤销状态 分析了一下单调队列可能不太好做,所以直接二分了 #include <bits/stdc++.h> using namespace std; typedef...

2018-10-08 18:41:59 78 0

原创 HDU 5952 Counting Cliques——剪枝

剪就完事了 #include <bits/stdc++.h> using namespace std; const int maxn = 110; int T, n, m, s, ans; vector<int> G[maxn]; int...

2018-10-08 16:52:48 46 0

原创 Gym - 101550E Exponial——欧拉降幂

a^b%c = a^(phi(c)+b%phi(c))%c 1e9看似吓人,其实中间模数为1时可以直接返回0,算是个强剪枝 #include <bits/stdc++.h> using namespace std; typedef long long LL; LL...

2018-10-08 16:17:58 258 0

原创 Gym - 101350G Snake Rana——容斥

容斥裸题 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using na...

2018-10-08 11:34:32 73 0

原创 Gym - 101550C Card Hand Sorting——思维

开始读错题意了,题目要求的是相同花色之间有序,知道这一点以后就枚举一下序列跑几个LCS就好了 #include <bits/stdc++.h> using namespace std; const int maxn = 100; char str[maxn]; in...

2018-10-08 11:33:31 68 0

原创 Gym - 101550D Daydreaming Stockbroker——贪心

一个简单的小贪心,被队友坑着写了一发dp,emm。。。 #include <bits/stdc++.h> using namespace std; typedef long long LL; const int maxn = 1000; int N; LL a[ma...

2018-10-08 10:07:46 64 0

原创 HDU 3507 Print Article——斜率优化dp

首先不难推出这道题的状态转移方程:dp[i]=min{dp[j]+(sum[i]-sum[j])^2|0<j<i} 假设有k<j,j比k更优当且仅当dp[j]+(sum[i]-sum[j])^2<=dp[k]+(sum[i]-sum[k])...

2018-10-06 18:12:27 50 0

原创 CodeForces - 787D Legacy——线段树优化建图

建两棵线段树,一棵表示入区间,一棵表示出区间 入区间每个父亲和儿子连边,权值为0,出区间每个儿子和父亲连边,权值为0,入区间和相应的出区间连边,权值为0 每次查询新建两个点,这里设为q1,q2,并假设要连边的两个区间为【l1,r1】,【l2,r2】(题目中为有向边),那么其实是【l1,r1】的...

2018-10-05 20:35:33 299 0

原创 UVALive 4850 Installations——思维

按d排序保证最大惩罚最小,但是此时次大惩罚+最大惩罚不一定最小,可以牺牲一个任务使得最大惩罚增大,次大惩罚减小使得最终答案减小 #include <bits/stdc++.h> using namespace std; const int maxn = 1000; ...

2018-10-04 22:36:14 68 0

原创 HDU 5992 Finding Hotels——kd树

离线按cost排序,先把所有节点标记为不可用,然后边扫边标记就行了,复杂度O(mlog(n)) (最坏O(msqrt(n))) #include <bits/stdc++.h> using namespace std; typedef long long LL; c...

2018-10-04 11:03:18 77 0

提示
确定要删除当前文章?
取消 删除