自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

iwi

  • 博客(55)
  • 问答 (1)
  • 收藏
  • 关注

原创 CF1095D Circular Dance

题目:CF1095D Circular Dance思路:把每个点后面两个点之间连一条无向边,然后dfs找环就可以了。但是要注意下,从第一个点开始dfs时,要走指向它后面的点的路,不然整个环就会找反。代码:#include<bits/stdc++.h>using namespace std;#define read(x) scanf("%d",&x)#def...

2018-12-28 18:09:58 574

原创 洛谷 P2444 [POI2000]病毒

题目:病毒思路:首先把所有病毒代码建成trie。然后建出fail指针,顺便完成AC自动机的优化。然后分析样例可以获得这样一棵trie图——301 11 00000其中黑边是trie的正常边,绿边是在处理AC自动机时连上的优化边,红边是fail指针。节点内部的数是节点权值,旁边的是节点编号。可以知道,一个无限的文本串,在AC自动机匹配的过程中一定会“死循环”,即存在环状的...

2018-12-28 16:05:06 219

原创 CF1080D Olya and magical square

题目:Olya and magical square思路:首先,n>31时可以不用考虑,因为只需要划分左上角或右下角的正方形就足够了。令f[i]f[i]f[i]表示把大长方形2n2^n2n划分成全部是边长为2n−i2^{n-i}2n−i小正方形的划分次数。g[i]g[i]g[i]表示形成边长2n−i2^{n-i}2n−i通路需要的最小划分数。f[i]=2i∗2−2+f[i−1]f...

2018-12-27 13:37:09 191

原创 一些奇怪的东西?

点到链的距离设点kkk,链的端点(i,j)( i , j )(i,j),点到链的距离为DDD。定义d[i,j]d [ i , j ]d[i,j]表示点iii到点jjj的距离。可得 D=d[i,k]+d[j,k]−d[i,j]2D=\frac{d[i,k]+d[j,k]-d[i,j]}{2}D=2d[i,k]+d[j,k]−d[i,j]​原理如图:...

2018-12-26 22:22:15 161

原创 CF1080C Masha and two friends

题目:Masha and two friends思路:首先这题思路很简单,模拟+容斥就可以了。即 最终的白块数 = 原网格图的白块数 + 涂白增加的白块数 - 涂黑减少的白块数 - 又涂了白又涂了黑的那一块减少的白块数。这里重点说下怎么求两矩形交,我最开始就是这里不会写的。下面的题解大多分类讨论了,其实可以不用讨论的。如图,要求黑色矩形和红色居心的交。设黑色矩形左上角坐标 ( x...

2018-12-26 22:19:48 287

原创 CF1080B Margarite and the best present

题目:Margarite and the best present思路:其实我们可以先列个表看看的——a_i -1 2 -3 4 -5 6 -7 8 -9 10sum_i -1 1 -2 2 -3 3 -4 4 -5 5 //sum是a的前缀和找个规律——发现sumi=⌊i−12⌋×(−1)isum_i=\left\lfloor\dfr...

2018-12-25 21:07:33 222

原创 CF1080A Petya and Origami

题目:Petya and Origami思路:膜你题,就是输出x/k+y/k+z/k就可以了。要注意向上取整。代码:#include<bits/stdc++.h>using namespace std;#define maxn 100000000#define read(x) scanf("%d",&x)int n,k;int main() { ...

2018-12-25 17:30:25 301

原创 洛谷 P2149 [SDOI2009]Elaxia的路线

并不会写先存个档#include<bits/stdc++.h>using namespace std;#define maxn 1500#define read(x) scanf("%d",&x)#define inf ((int)(1e9))struct Edge{ int x,y,z; Edge(){} Edge(int xx,int yy,int z...

2018-12-25 17:00:14 155

原创 洛谷 P2055 [ZJOI2009]假期的宿舍

题目:假期的宿舍emm……为什么二分图会写错这么多次?我不会说是因为我建图建错了的……思路:我好像没有说过我建错了图,二分图匹配好像没有什么好说的,所以这里说下建图的问题。首先,我们考虑用学生和空床匹配。床的个数一定等于本校学生人数,因为不管学生是否离校,他们的床都在。需要和床匹配的人数就是 没有回家的本校学生人数 + 非本校学生。所以,一个人 i 可以和 j的床 连边的条...

2018-12-24 23:24:49 110

原创 洛谷 P1983 车站分级

题目:车站分级思路:根据每条线路,把经过的不停的站向停的站连边。然后跑一遍拓扑排序就好了。代码:#include<bits/stdc++.h>using namespace std;#define maxn 1000#define read(x) scanf("%d",&x)int n,m;int s[maxn+5],t[maxn+5][maxn+5];...

2018-12-24 21:08:44 115

原创 洛谷 P1268 树的重量

题目:树的重量思路:树上点k到直线(i,j)距离 = ( - d(i,j) + d(i,k) + d(j,k) ) / 2代码:#include<bits/stdc++.h>using namespace std;#define maxn 30#define read(x) scanf("%d",&x)int n;int d[maxn+5][maxn+5]...

2018-12-24 16:49:00 144

原创 Codeforces Round #528 (Div. 2, based on Technocup 2019 Elimination Round 4) D Minimum Diameter Tree

题目:Minimum Diameter Tree思路:可以把s尽量平均的分配给叶子节点所连的边,直径就是这个平局值*2。给出两组也许有用的数据:Input:2 21 2Output:2Input:12 10001 21 31 41 51 61 77 87 99 109 119 12Output:222.22222222222代码:#...

2018-12-24 13:19:46 113

原创 Codeforces Round #528 (Div. 2, based on Technocup 2019 Elimination Round 4) C Connect Three

题目:Connect Three思路:模拟。可以先把ABC三点按照横坐标排序,然后在A和B之间连一条先向左后向上的路,同理在B和C之间连一条先向下后向右的路。最后统计一下。我们假设横着的那一段距离是一定要走的,要尽可能的省下竖着的那一段距离的花费,就让两条路线竖着的部分尽可能的重合。所以我们把这一段都安排在B点那一列就好了。代码:#include<bits/stdc++.h&...

2018-12-24 13:11:59 216 1

原创 Codeforces Round #528 (Div. 2, based on Technocup 2019 Elimination Round 4) B Div Times Mod

题目:Div Times Mod思路:枚举一个数i ∈ [1,n) 使得 n / i ==0 ,表示 x mod k == i,且x / k == n / i 。然后 x 可以算出来,即 x=( n / i ) * k + i 。输出x的最小值就好 。代码:#include<bits/stdc++.h>using namespace std;#define re...

2018-12-24 13:07:32 174 1

原创 Codeforces Round #528 (Div. 2, based on Technocup 2019 Elimination Round 4) A Right-Left Cipher

题目:Right-Left Cipher思路:直接模拟就可以了。代码:#include<bits/stdc++.h>using namespace std;#define read(x) scanf("%d",&x)#define maxn 100char a[maxn+5];int main() { scanf("

2018-12-24 13:01:26 99

原创 字符串总结?

其实就是模板汇总好伐1、字符串hash可以解决一切字符串问题。复杂度成迷。#include<bits/stdc++.h>using namespace std;#define maxn 10000#define read(x) scanf("%d",&x)#define maxm 1500#define ull unsigned long long#de...

2018-12-23 16:48:09 135

原创 CF1093C Mishka and the Last Exam

题目:Mishka and the Last Exam思路:其实,这就是个贪心…把a[i]尽量取小,a[n-i+1]取大就好了。代码:#include<bits/stdc++.h>using namespace std;#define read(t) scanf("%d",&t)#define readll(t) scanf("%lld",&t)#d...

2018-12-21 21:42:57 206

原创 CF1093B Letters Rearranging

题目: Letters Rearranging思路:sort一下就好了。代码:#include<bits/stdc++.h>using namespace std;#define read(t) scanf("%d",&t)#define maxn 1000char a[maxn+5];int main() { int t; read(t); whi...

2018-12-21 21:19:39 242

原创 CF1093A Dice Rolling

题目:Dice Rolling思路:直接输出 x/7 + (x/7!=0)代码:#include<bits/stdc++.h>using namespace std;#define read(t) scanf("%d",&t)int main() { int t; read(t); while(t--) { int x; read(x); in...

2018-12-21 21:04:56 231

原创 洛谷 P2146 [NOI2015]软件包管理器

题目:软件包管理器思路:树剖模板题。代码:#include<bits/stdc++.h>using namespace std;#define maxn 100000#define read(x) scanf("%d",&x)int n;struct Node{ int lstid; int fa,hson; int sz,d,tp;};Nod...

2018-12-20 16:15:03 142

原创 洛谷 P1099 树网的核

题目:树网的核思路:floyd求多点最短路。枚举路径端点,暴力的算每个点到路径的距离。一个点k到路径(i,j)的距离为:(d[i][k]+d[j][k]-d[i][j])/2代码:#include<bits/stdc++.h>using namespace std;#define maxn 300#define read(x) scanf("%d",&x)...

2018-12-20 13:43:49 147

原创 洛谷 P3178 [HAOI2015]树上操作

题目:树上操作思路:树剖模板题。代码:#include<bits/stdc++.h>using namespace std;#define read(x) scanf("%lld",&x)#define maxn 100000#define ll long longstruct Node { ll lstid; ll w,fa; ll sz,d,hso...

2018-12-20 12:54:09 163

原创 【模板·树剖】 洛谷 P3384 【模板】树链剖分

题目:树链剖分注意:线段树区间处理时左右区间不要颠倒。代码:#include<bits/stdc++.h>using namespace std;#define read(x) scanf("%d",&x)#define maxn 100000#define ll long longstruct Node { int lstid; int w,fa; ...

2018-12-19 23:40:52 147

原创 洛谷 P4005 小Y和地铁

样例解释简单的想法只和0号线有1个交点的线路可以不用考虑,因为可以把它的长度看做无限短。如果有一条线路左右端点间没有另外一条线的端点,那么这条线可以直接删除。这样操作至没有可以删除的线为止。这样子样例3就可以不用考虑任何的线路直接输出0了……一条线和0号线的位置关系dfs。枚举每条线和0号线的位置关系+暴力找交点。时间复杂度O(

2018-12-19 16:26:54 408

原创 Codeforces Round #527 (Div. 3) CF1092C Prefixes and Suffixes

题目:Prefixes and Suffixes思路:可以知道原序列一定是由给出的最长的两个字符串拼接而成的,所以可以尝试把最长的两个字符串按两种相对位置拼接。设一个数组b。对于每种拼接方法——如果一个串可以放在前缀的位置而不能放在后缀的位置,就把b[i]设为1。如果一个串可以放在后缀的位置而不能放在前缀的位置,就把b[i]设为2。如果一个串可以放在前缀的位置也可以放在后缀的位置,...

2018-12-19 16:06:19 320

原创 Codeforces Round #527 (Div. 3) CF1092B Teams Forming

题目:Teams Forming思路:贪心就好了,把长度最相近的两根配对一定是最优的。代码:#include<bits/stdc++.h>using namespace std;#define read(x) scanf("%d",&x)#define maxn 100int n;int a[maxn+5];int main() { read(n);...

2018-12-19 13:51:01 262

原创 Codeforces Round #527 (Div. 3) CF1092A Uniform String

题目:Uniform String思路:每次输出的形式都形如 abcdabcdabc 这样的,k个字母循环输出。只需要写一个循环维护一下就好了。代码:#include<bits/stdc++.h>using namespace std;#define read(x) scanf("%d",&x)int n;int main() { read(n);...

2018-12-19 13:49:31 265

原创 【模板·点分治】 洛谷 P3806 【模板】点分治1

题目:点分治代码:#include<bits/stdc++.h>using namespace std;#define maxn 10000#define maxk 10000000#define read(x) scanf("%d",&x)struct Edge{ int y,z; Edge(){} Edge(int yy,int zz) {y=yy,...

2018-12-18 21:40:54 131

原创 【模板·树的重心】 codevs 3639 树的中心

题目:树的中心树的重心找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。所以dfs下就好了。代码:#include<bits/stdc++.h>using namespace std;#define maxn 16000#define inf (1e9)#define read(x) scanf("%...

2018-12-18 16:23:21 158

原创 【模板·后缀数组/sa】洛谷 P3809 【模板】后缀排序

题目:后缀排序代码:#include<bits/stdc++.h>using namespace std;#define maxn 1000000int n,m;char a[maxn+5];int sa[maxn+5],rk[maxn+5];int tax[maxn+5],tp[maxn+5];void readin() { scanf("%s",a+1)...

2018-12-18 13:34:36 187

原创 Avito Cool Challenge 2018 B. Farewell Party ( CF 1081B )

题目:Farewell Party代码:#include<bits/stdc++.h>using namespace std;#define read(x) scanf("%d",&x)#define maxn 100000int n;vector<int> a[maxn+5];int col[maxn+5],cnt;int main() ...

2018-12-17 16:38:08 266

原创 Avito Cool Challenge 2018 D. Maximum Distance (CF 1081D)

题目:Maximum Distance题意:给一张图,定义一条路径的长度为这条路径上的边权最大的边的边权。定义两点间距离为这两点间路径的最小长度。给出k个特殊节点,求对于每个特殊节点,距离它最远的点到它的距离。思路:可以知道,这个距离一定出现在最小生成树上。所以先跑一遍kruskal,然后取第一个特殊节点dfs求出每个特殊节点到它的距离d[i],所有节点的最远距离都是 max (...

2018-12-17 13:44:31 320

原创 Avito Cool Challenge 2018 C. Colorful Bricks ( CF1081C )

题目:Colorful Bricks题意:给出3个整数 n , m , k 。分别代表有n块砖,有m种颜色,其中有k块砖和自己左边的砖颜色不一样。问有几种染色方案。思路:dp。令f[i][k]表示前i块砖,有k块和左边的不一样的方案数。边界:f[1][0]=m。转移方程:f[i][k]=(f[i-1][k]+(k==0?0:f[i-1][k-1])*(m-1))%md;代码...

2018-12-17 13:29:26 208

原创 Avito Cool Challenge 2018 A. Definite Game(CF1081A)

题目:Definite Game题意:给出一个正整数n,可以多次操作,每次操作可以把n减去一个和n互质的数。问n的最小可能值。思路:大于2的数都直接输出1就好,因为可以直接减去n-1,n-1和n一定是互质的。2的话输出2,1输出1。代码:#include<bits/stdc++.h>using namespace std;#define read(x) sc...

2018-12-17 13:07:14 205

原创 洛谷 P4346 [CERC2015]ASCII Addition

题目:ASCII Addition思路:卡读入毒瘤题膜个你。代码:#include<bits/stdc++.h>using namespace std;string a[10];int d[2],e[20];int cnt;void init() { a[0]="xxxxxx...xx...xx...xx...xx...xxxxxx"; a[1]="....

2018-12-16 21:54:27 180

原创 CF1070J Streets and Avenues in Berhattan

题目:Streets and Avenues in Berhattan思路:指把一种颜色分开一定是最优的。代码:#include<bits/stdc++.h>using namespace std;#define read(x) scanf("%d",&x)#define maxn 30000#define maxk 200000int n,m,K;int...

2018-12-12 17:02:50 263

原创 CF833B The Bakery

题目:The Bakerykevin_yu的题解之前没有好好听@kevin_yu讲题,做了一晚上……这篇题解主要是对kevin_yu的补充以及代码注释的扩充。思路:part 1.dp一个很容易想到的O(n2k)O(n^2k)O(n2k)算法——令f[i][j]f[i][j]f[i][j]表示前i的位置划分j次的价值。转移方程:f[i][j]=max (f[k][j−1...

2018-12-11 23:52:26 335

原创 洛谷 P1640 [SCOI2010]连续攻击游戏

题目:连续攻击游戏思路:二分图匹配问题。代码:#include<bits/stdc++.h>using namespace std;#define maxn 1000000#define maxm 10000#define read(x) scanf("%d",&x)int n;vector<int> a[maxn+5];int use[ma...

2018-12-11 20:36:04 178

原创 洛谷 P2216 [HAOI2007]理想的正方形

题目:理想的正方形思路:单调队列。代码:#include<bits/stdc++.h>using namespace std;#define maxn 1000#define maxk 100#define read(x) scanf("%d",&x)struct Pair { int x,y; Pair(){} Pair(int xx,int yy)...

2018-12-11 15:21:36 245

原创 洛谷 P2051 [AHOI2009]中国象棋

题目:中国象棋思路:首先是30分暴力——直接dfs就好。用row[]和col[]存储状态。#include<bits/stdc++.h>using namespace std;#define maxn 100#define read(x) scanf("%d",&x)#define md 9999973int n,m;int rw[maxn+5],co...

2018-12-10 23:36:54 214

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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