自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wzf_2000的博客

博客已搬迁,请查看置顶博客

  • 博客(116)
  • 收藏
  • 关注

原创 博客搬迁

github新地址:github codingme新地址:codingme

2017-12-25 19:57:49 546

原创 教程5

判断语句if 语句基本格式```cppif (condition) statement(s);//单个语句```或者if (condition) statement(s);//单个语句else statement(s);//单个语句或者if (condition){ statement(s);}else{ statement(s);}(当然其中只有一...

2019-10-03 11:57:02 176 1

原创 【Codeforces301E】Yaroslav and Arrangements

题意:给出n,m,kn,m,k,询问有多少个长度为nn的数组bb满足以下要求: b[i]≤b[i+1](1≤i<n)b[i] \leq b[i+1](1 \leq i < n)1≤b[1]≤b[n]≤m1 \leq b[1] \leq b[n] \leq m将bb数组排列后有大于等于一种小于等于kk种排列aa满足以下要求: |a[i]−a[i+1]|=1(1≤i<n)|a[i]-a[i+1

2017-12-20 18:32:03 754

原创 【Codeforces332E】Binary Key

题意:给出两个字符串p和s和一个正整数k,要求构造长度为k的01串,满足以下要求: 将其不断复制到长度大于等于|p|。对应p跑这个串,如果当前位置为1,则将p当前对应的字符加入一个串q的结尾。(开始为空串)最后得到的串q与s相等。输出满足要求的字典序最小的01串。|p| \leq 10^6,|s| \leq 200,k \leq 2000题解:按照模k的值分类,尽量让字典序小,通过哈

2017-12-20 08:05:16 473

原创 【Codeforces232E】Quick Tortoise

题意:给你一张n×mn \times m的网格图,每次可以向下或者向右,qq次询问两点从一点是否可到另一点。n,m≤500,q≤6×105n,m \leq 500,q \leq 6 \times 10^5题解:这道题非常像某次cc的最后一道正常题的弱化版(可能更无聊)。首先我们可以预处理分治的过程。每次找到这两个点之间必须经过的中轴线。每层分治处理一个点可以到达的他所在层的中轴线上的哪

2017-12-19 19:16:28 289

原创 【Codeforces238E】Meeting Her

题意:有一张nn个点,mm条边的有向图,有kk种巴士,每种巴士有一个起点sis_i和终点tit_i,每一个时刻,巴士都会等概率选择一条两点间的最短路径。询问一次从aa到bb最坏情况下最少需要乘坐几种巴士。n≤100,m≤n×(n−1),k≤100n \leq 100,m \leq n \times (n-1),k \leq 100题解:首先我们需要知道每个巴士的路径上的必经点。然后我们可

2017-12-19 18:59:24 448

原创 【Codeforces559E】Gerald and Path

题意:一条路上有nn盏不同的灯,每盏灯所在位置为pip_i,向左或者向右可以照射的距离为lil_i,求最大总照射长度。n≤100,li,pi≤108n \leq 100,l_i,p_i \leq 10^8。题解:这道题dp思路似乎都很神奇?设dp[i][j][k]dp[i][j][k]表示到第ii盏灯(按位置从左到右),最左边的需要覆盖到的位置是jj(0代表不存在未覆盖),最右端位置是kk

2017-12-19 18:24:44 734

原创 【Codeforces776G】Sherlock and the Encrypted Data

题意:设xx的16进制表示为xn−1⋯x1x0x_{n-1} \cdots x_1x_0,那么设h(x)=2xn−1|2xn−2|⋯2x1|2x0h(x)=2^{x_{n-1}}|2^{x_{n-2}}| \cdots 2^{x_1}|2^{x_0},求区间[l,r][l,r]中满足x xor h(x)<xx\ xor\ h(x)< x的数的个数。题解:显然只跟最后几位有关,就是一个16进制

2017-12-19 16:00:38 346

原创 【Codeforces536D】Tavas in Kansas

题意:给你一张nn个点mm条边的无向图,每个点有一个点权pip_i(存在负数)有两个人在进行游戏,他们分别在ss、tt号点。两个人轮流操作,每次操作选出一个非负整数xx,表示将到他们所在点最短距离小于等于xx的点的点权拿走。(拿走后点权消失,且每次拿走的有点权的点的个数至少为1)询问最后胜负情况(谁的总点权和较大)。n≤2000,n−1≤m≤100000n \leq 2000,n-1 \l

2017-12-19 15:28:08 436

原创 【Codeforces856C】Eleventh Birthday

题意:给你nn个数,询问将其按照一定顺序排列后得到的数能被11整除的排列有几种。多组询问。t≤100,n≤2000t \leq 100,n \leq 2000。题解:首先我们发现10≡−1(mod11)10 \equiv -1(mod 11),所以可以将nn个数根据长度的奇偶性分为两类。显然长度为偶数的不会影响长度为奇数的贡献。而长度为奇数的从偶数位开始的数的个数必为⌊n2⌋\lfloo

2017-12-19 15:08:21 436

原创 【Codeforces314E】Sereja and Squares

题意:给你一个仅含小写字母和‘?’的字符串,你需要将问号处填上小写或者大写字母,统计满足下列要求的方案数:(对109+710^9+7取模)每个小写字母都有向后匹配的对应大写字母,并且没有剩余的大写字母。每两对对应的小大写字母构成的区间[l1,r1],[l2,r2][l_1,r_1],[l_2,r_2]满足l1<r1<l2<r2l_1<r_1<l_2<r_2或者l1<l2<r2<r1l_1<l_

2017-12-19 14:50:02 911

原创 【Codeforces436D】Pudding Monsters

题意:开始有无限长的一段格子,有nn个格子种有布丁怪兽,一开始连续的布丁怪兽算一个布丁怪兽。每回合你可以将一个布丁怪兽向左或右移动,他会在碰到第一个布丁怪兽时停下,并与其合并。如果最左边的怪兽向左,你可以认为是将其移动到了无穷远处。有mm个特殊格子,询问最终你最多可以让几个特殊的格子上被布丁覆盖。n≤10000,m≤2000n \leq 10000,m \leq 2000。题解:首先考

2017-12-19 14:27:32 477

原创 【Codeforces183D】T-shirt

题意:有nn个人和mm种T-shirt,每个人都有一种喜欢的T-shirt,然而你只知道他们每个人喜欢某种的概率。你需要在开始时选定nn件T-shirt的种类,人们会按照编号从11~nn挑选T-shirt,如果剩下还有他喜欢的,则会选走,否则不变。请输出最大的期望送出的T-shirt件数。n≤3000,m≤300n \leq 3000,m \leq 300题解:首先我们可以发现每种T-s

2017-12-19 13:43:25 852 1

原创 noip2017游记

noip2017游记

2017-11-15 16:20:51 732

原创 codechef November Challenge 2017解题报告

第二次被ceilks艹翻的无奈啊。。Villages and Tribes模拟不解释#include <bits/stdc++.h>#define gc getchar()#define ll long long#define N 100009using namespace std;char a[N];int main(){ ios::sync_with_stdio(false

2017-11-14 21:03:35 703

原创 【Codeforces875E】Delivery Club

首先二分答案,然后从后往前跑目的地维护可存在的区间。区间不存在或者开始点不在最终区间就不行,否则可以。#include <bits/stdc++.h>#define gc getchar()#define ll long long#define N 100009#define mid (l+r>>1)using namespace std;int n,s,t,a[N];int read

2017-10-26 14:50:32 804

原创 【Codeforces418D】Big Problems for Organizers

先求出树的直径。 预处理出直径,用rmqrmq维护处直径上某一个区间点的子树内到直径两端点距离的最大值。 询问时,先找到x,yx,y两点所在的根,然后答案只能是一下两种: 1、直径两端点的答案 2、xx所在树到路径中点所在直径上的点的树中距xx的最大距离或者另一半的同样情况。#include <bits/stdc++.h>#define gc getchar()#define ll lo

2017-10-26 14:47:38 338

原创 【Codeforces717F】Heroes of Making Magic III

以下根据网上大佬们的博客。 消除完一个区间肯定有一大堆方法,不妨考虑其中一种: 先前两个之间反复横跳,消除光第一个,然后再消除第二个,直到消除完。 然后我们可以根据这个列出不等式和方程: al≥1al+1−al≥0al+2−al+1+al≥1⋯ar−ar−1+⋯≥[(r−l+1)≡1(mod2)]ar−ar−1+⋯=(r−l+1)mod2a_l\ge1\\a_{l+1}-a_l\ge0\\a

2017-10-26 14:39:43 370

原创 【Codeforces813F】Bipartite Checking

cdq分治维护并查集。 并查集时,只要按秩合并,不要路径压缩,方便还原。 (好吧,还不是看po姐博客的)#include <bits/stdc++.h>#define gc getchar()#define ll long long#define mid (l+r>>1)#define N 400009using namespace std;int n,m,sta[N],top;s

2017-10-26 14:23:38 598 1

原创 【Codeforces696E】...Wait for it...

一个一个删,树剖线段树上维护即可。#include <bits/stdc++.h>#define gc getchar()#define ll long long#define mid (l+r>>1)#define inf (ll)2e18#define N 100009#define root 1,1,n#define lc cur<<1#define rc lc|1#defi

2017-10-26 14:16:28 309

原创 【Codeforces837G】Functions On The Segments

这题只要读懂了题意,开大了范围,看清了如何强制在线,就能很快AC(雾)#include <bits/stdc++.h>#define gc getchar()#define mid (l+r>>1)#define ll long long#define mod 1000000000#define M 30000009#define N 200009using namespace std

2017-10-26 11:01:39 413

原创 【Codeforces249D】Donkey and Stars

转换以后就是一个lis。 (程序非常简单易懂)#include <bits/stdc++.h>#define gc getchar()#define ll long long#define mid (l+r>>1)#define N 100009using namespace std;int n,a,b,c,d,m,sta[N],top;struct point{ ll x

2017-10-25 19:38:22 437

原创 【Codeforces633H】Fibonacci-ish II

这题显然需要莫队,然后我就想着用非旋转treaptreap骗过去,然后光荣TLE了。(感觉我复杂度似乎也是错的可能)#include <bits/stdc++.h>#define gc getchar()#define ll long long#define N 30009#define rd(x) ((rand()*23333+rand())%(x))using namespace st

2017-10-25 17:01:06 368

原创 【Codeforces763D】Timofey and a flat tree

题意:给定一棵树,询问以哪个点为根时其不同构子树数量最多。 nn个点的树,n−1n-1条边,所以子树共有2(n−1)2(n-1)种,然后先维护出以11为根的各子树哈希值,然后在跑一遍dfsdfs算出每个点的答案就可以啦。 (还不是看std的)#include <bits/stdc++.h>#define gc getchar()#define ll unsigned long long#d

2017-10-25 16:57:09 497

原创 【Codeforces319E】Ping-Pong

因为这题是区间之间的连边以及询问连通性之类的,所以考虑用线段树维护区间的并查集。 然后由于一些不可知原因MLE了,然后我改成动态开点的就好了。(smg??) 中间边界值太复杂,并没有思考过。#include <bits/stdc++.h>#define gc getchar()#define ll long long#define mid (l+r>>1)#define inf 1e9

2017-10-25 16:52:26 642

原创 【Codeforces809D】Hitchhiking in the Baltic States

dp[i]dp[i]表示长度为ii的序列最后一个数的最小值。 考虑转移时加入一段区间[l,r][l,r]。 对于最大的满足dp[i]<ldp[i]<l的位置: dp[i+1]=min(dp[i+1],l)dp[i+1]=min(dp[i+1],l) 因为dp[i+1]>=ldp[i+1]>=l,所以转移可以变为直接赋值(一定发生)。 对于最大的满足dp[j]<rdp[j]<r的位置: d

2017-10-25 16:48:20 523

原创 【Codeforces875F】Royal Questions

直接把读入当成连边,就是个类似于最小生成树的最大生成基环树森林什么的问题。#include <bits/stdc++.h>#define gc getchar()#define ll long long#define N 200009using namespace std;int n,m,fa[N],tg[N],Ans=0;struct edge{ int x,y,val;

2017-10-25 16:34:30 491

原创 【Codeforces875B】Sorting the Coins

倒着加就好。#include <bits/stdc++.h>#define gc getchar()#define ll long long#define N 300009using namespace std;int a[N],Ans[N],n;int read(){ int x=1; char ch; while (ch=gc,ch<'0'||ch>'9')

2017-10-25 16:02:13 329

原创 Codeforces Round #438 (Div. 1 + Div. 2 combined)(除G)解题报告

这场梁大大怎么就用我小号打了啊?? 然后就2个小时出场?然后rank15涨飞? (dlsFST好惨啊)Bark to Unlock搞笑题,记得考虑原来就出现就不会FST。#include <bits/stdc++.h>#define gc getchar()#define ll long longusing namespace std;char a[2],b[2];int n,num[

2017-10-25 15:56:20 283

原创 codechef October Challenge 2017解题报告

第二次打challenge。。果然还是拿不到钱(艹不过大佬)啊。A Balanced Contest模拟就好。#include <bits/stdc++.h>#define gc getchar()#define ll long longusing namespace std;int read(){ int x=1; char ch; while (ch=gc,ch

2017-10-17 10:02:22 496

原创 【Codeforces150E】Freezing with Style

题意:求树上路径长度在[L,R][L,R]之间的中位数最大的路径(长度为偶数取后面(较大)那个)。显然需要二分midmid,然后val>=midval>=mid的边赋值为1,否则赋值为-1。问题转化为树上是否存在路径长度在[L,R][L,R]的路径路径和大于等于零。 这个可以树分治。每条路径都并定在某层的重心。所以考虑怎么求出rtrt的不同子树中,是否存在两点满足要求。 第一想法是按某种顺序枚举

2017-09-29 19:19:18 367

原创 Codeforces Round #436 (Div. 2)解题报告

这可能是我人生第一场计rating的cf啊。。怎么就炸的这么惨啊。不得不说,题目确实很水啊。。然而我还是被艹翻了啊。似乎前四题都太水了。于是扔代码跑。Fair Game#include <bits/stdc++.h>#define gc getchar()#define ll long long#define N 109using namespace std;int a[N],vis[N]

2017-09-27 16:33:14 224

原创 codechef September Challenge 2017解题报告

前记: 第一次打cc感觉要自爆啊。 (不过似乎题目非常良心啊,似乎没有撕烤题啊)Little Chef and Sums第一个最小值的位置。#include &lt;bits/stdc++.h&gt;#define gc getchar()using namespace std;int read(){ int x=1; char ch...

2017-09-27 16:23:43 631

原创 【Codeforces858F】Wizard's Tour

题意: 给你一张nn点mm边无向图,询问最多进行几次操作,每次操作删去两条相邻的边,并给出方案。题解还是蛮神的,直接证明一个连通块的答案可以达到上界,直接给了构造,应该挺显然的。大概就是通过搜索树尽量先匹配深度较低的点向下连得边就好了。#include <bits/stdc++.h>#define gc getchar()#define ll long long#define N 20000

2017-09-27 10:01:42 451

原创 【Codeforces257E】Greedy Elevator

题意: 有一个电梯,有nn个人。 第ii个人会在tit_i时刻来到sis_i层的电梯口,并想要去tit_i层。 每一个时刻,设pupp_{up}为想要去楼上的在电梯中的人数与在楼上等待的人数之和,pdownp_{down}为想要去楼下的在电梯中的人数与在楼下等待的人数之和,若pup≥pdownp_{up}≥p_{down}则向上走一层,否则向下走一层。输出每个人到达目的地的时刻。4个set维护

2017-09-27 09:56:39 329

原创 【Codeforces845E】Fire in the City

题意: 一个火源第ii秒形成的火区是一个边长为2i+12i+1的正方形 在n×mn×m的网格中,问已知kk个火源,再加一个之后(由你选),问最少的时间可以将所有区域变为火区。首先最少时间肯定需要二分midmid,然后每个火区的关键点就只有4个。离散化后可以二维差分一下算出最上、下、左、右的四个没有被烧到的关键点。看看和midmid之间的关系就好了。#include <bits/stdc++.h>

2017-09-27 09:49:42 645

原创 【Codeforces700D】Huffman Coding on Segment

题意: 给你nn个数,问区间[l,r][l,r]中的数用二进制哈夫曼编码编码后的最短长度。我撕烤了大概很久线段树怎么维护。然后一看题解告诉我是莫队!(wtf??) 按出现次数分为大于n√\sqrt n和小于等于n√\sqrt n的。小于等于的从小到大无脑合并,如果合出了大于n√\sqrt n的就和原来的大于n√\sqrt n的一起加入一个优先队列,最后处理完后挑小的两个合并就好啦。 时间复杂度

2017-09-27 08:20:36 477

原创 【Codeforces815D】Karen and Cards

题意: 给定N张卡牌,每张卡牌有三个属性ai,bi,cia_i,b_i,c_i。 现在给出三个数p,q,rp,q,r,分别表示三个属性的上限。问有多少种不同的卡牌,能压制给定的nn张卡牌(只要三个属性有两个的值严格大于另一卡牌即可)。其中属性值一定是正整数。首先肯定要按某一维排序,我们不妨排序cic_i。 从大到小枚举cc,我们发现每次的答案都是一个类似于阶梯的图。然后(好吧我也不知道)似乎

2017-09-27 08:13:08 426

原创 【Codeforces587E】Duff as a Queen

题意: 区间异或一个数,区间询问能异或出几个数。线性基应该有个性质,里面有nn个数,就可以异或出2n2^n个数。 然后如果暴力O(log2n)O(log^2n)合并两个线性基,似乎区间异或会炸。 然后你差分一下,就变成单点加了。然后再写一个树状数组支持单点查询ll位置的值就好了。#include <bits/stdc++.h>#define N 200009#define T 32#de

2017-09-27 08:03:14 1014

原创 【Codeforces193D】Two Segments

枚举线段树lazy标记维护即可。(似乎有点太久远了)#include <bits/stdc++.h>#define N 300009#define gc getchar()#define ll long long#define mid (l+r>>1)using namespace std;int n,a[N],pos[N];ll ans;int dl[N],dr[N],now[N]

2017-09-26 17:08:45 341

空空如也

空空如也

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

TA关注的人

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