自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HbFS-

Would you like?

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

原创 AtCoder Grand Contest 002 做题记录

A - Range Product题意:给定两个整数aaa、bbb(a≤ba≤ba\leq b),判断∏bi=ai∏i=abi\prod _{i=a}^b i的正负形。 −109≤a≤b≤109−109≤a≤b≤109-10^9 \leq a\leq b\leq 10^9 解答:分类讨论即可。#include <bits/stdc++.h>using namespac...

2018-08-20 17:30:50 299

原创 AtCoder Grand Contest 001 做题记录

寒假!A - BBQ Easy题意:有2N2N2N根烤肉扦,第iii个烤肉扦长度为LiLiL_i,每一块肉需要横跨两根烤肉扦,长度为111。可以随意分配烤肉扦的顺序,询问最多同时可以烤多少块肉。 N≤100,Li≤100,LiN≤100,Li≤100,LiN\leq100,L_i\leq100,L_i是整数解答:将烤肉扦从小到大排序,下标为奇数的位置之和即为答案。#inc...

2018-08-05 23:07:12 318

原创 Codeforces 840D:Destiny

大意: 有一个长度为NN的序列,有MM次询问,每次询问区间[L,R][L,R]中出现次数大于区间长度除以kk的元素中,最小的那个数是多少。若不存在这样的元素输出-1。 N,M≤3∗105,K≤5N,M\leq3*10^5,K\leq5 解答: 序列从前往后建主席树,查询的时候若子树大小太小就返回,那么至多只会访问k个叶节点。时间复杂度:O(KNlogN)O(KNlogN)。#include

2017-09-03 08:48:46 573

原创 Codeforces 840B:Leha and another game about graph

大意: 给出一个NN个点MM条边的无向联通图,每个点有一个点权AiA_i,你需要为每一条边选择0或者1的边权,使得所有权值不为-1的点所连接的所有边的异或和等于AiA_i。 N≤3∗105N\leq 3*10^5,N−1≤M≤3∗105N-1\leq M\leq 3*10^5,−1≤Ai≤1-1\leq A_i \leq 1 解答: 若存在一个点的点权为-1,则选择一棵以该点为根的任意一棵生

2017-09-02 20:30:57 474

原创 AtCoder Grand Contest 018 做题记录

退役后的第一次补题 果然做题的时间拉长了好多 但是挺多题自己想出来了 也是蛮爽的UPD:8.11 明早还要上课,能写多少写多少吧。A - Getting Difference有点翻车,A想了好久才弄出来 题意: 有NN个球,第ii个球上写着AiA_i。进行如下操作:拿出两个球上面分别写着xx,yy,放回去三个球上面分别写着xx,yy,|x−y||x-y|询问是否能在若干次操作后使得序列

2017-08-11 22:09:56 633

原创 2017百度之星资格赛-1005 寻找母串

题意: 对于一个串S,当它同时满足如下条件时,它就是一个01偏串: 1、只由0和1两种符组成; 2、在S的每一个前缀中,0的个数不超过1的个数; 3、S中0的个数和1的个数相等。 现在给定01偏串S,请计算一下S在所有长度为n的01偏串中作为子串出现的次数的总和。 由于结果比较大,结果对1e9+7取余后输出。 n≤109,|S|≤105n\leq 10^9,|S|\leq10^5 解法:长

2017-08-07 20:29:57 855

原创 Codeforces 835E:The penguin's game

题意: 现在有NN个数,下标从11-NN。这NN个数中有N−2N-2个数是xx,有22个数是yy。 你可以每次向交互库提问,询问一个下标集合的数的异或和。 你需要在1919次询问之内回答这两个数的下标是多少。 解答: 考虑这两个下标的二进制,由于N≤1000N\leq 1000,二进制串的长度至多为1010 可以用1010次询问得到这两个数的异或值:       ~~~~~~每次按照二

2017-08-01 22:49:28 636

原创 AtCoder Grand Contest 017做题记录

诶最后三道题+第三题的部分分收场了 感觉这场比赛没怎么动脑子 不过也是NOI前最后一场AGC了吧,估计AtCoder的rating以后没机会变了A - Biscuits题意: 有NN袋饼干,第ii袋饼干大小为AiA_i,询问有多少种方案使得选出来的饼干总数模2为p N≤50,Ai≤100N\leq 50,A_i\leq100 解答: Fi,jF_{i,j}表示前ii袋饼干,选出来总和模2

2017-07-10 11:05:23 822

原创 Codeforces 241E:Flights

【大意】 有一个n 个结点且每条边权值均为1 的有向图,要你把一些边权改成2 使得任意一条从1到n 的路径长度都相等。 【解答】 相当于给定了一个有向图,现在让你给每条边确定一个权值。 权值的值域为11或者22,每条1到n的路径都是最短路。 令disxdis_x为xx到nn的最短路,对于每一条边E(u,v)E(u,v) 都有 disv+1≤disu≤disv+2dis_v+1\leq

2017-06-25 15:09:30 485

原创 Codeforces 238E:Meeting Her

【大意】 有一个n 个结点的有向图,边权均为1。Urapl 想从a 出发去b。有p 个公交车公司。在每 一秒的开始,第i 个公司的公交车随机选择一条从si 到ti 的最短路径然后走这条路径。如果 一个公交车经过Urpal 所在的交叉点,则Urpal 可以上这辆公交车,他可以在中途任意一个结 点下车。 在任何时刻Urpal 只知道他自己的位置和约会地点。当他上了公交车时他只知道这辆公交 车

2017-06-25 14:58:05 392

原创 Codeforces 249E:Endless Matrix

ii,jj的二维前缀和 若x≥yx\geq y y(4x+3x2+2x3−y−3xy+y3)6\frac{y(4x+3x^2+2x^3-y-3xy+y^3)}{6} 否则 (−x+x3+4y+3xy−3y2+2y3)x6\frac{(-x+x^3+4y+3xy-3y^2+2y^3)x}{6}

2017-06-17 20:29:12 328

原创 Codeforces 241D : Numbers

【大意】 给定一个1到n的排列a和一个素数p,构造一个子序列,使得元素异或和为0且首尾相接形成的大整数是p的倍数。n,p≤\leq50000。 【解答】 做法是把原数列中小于32的数拿出来构造这个序列,无视掉序列中大于等于32的数小于等于 32的数中,异或和为0的组合有(312)4(\frac{31}{2})^4种 当p不为2或者5时,首尾相接拼起来模p为0可以看做是一个随机函数,答案出现的

2017-06-16 21:20:54 545

原创 Codeforces 240F : TorCoder

对于每一种字符分开来维护 26棵线段树,线段树节点维护区间字符出现的次数,分别维护他们的位置判断一次操作是否合法: 对于每一个字符, 查询区间内该元素的个数,若出现两个字符出现的次数同为奇数,或者区间长度为偶数并且有字符出现的次数为奇数,则该操作不合法。进行一次操作: 对于单个字符,由于操作结束之后位置一定是在两侧连续的(不考虑出现次数为奇数时中间的那一个字符),用线段树区间赋值标记即可。

2017-06-15 21:56:09 553

原创 [UOJ#185][ZJOI2016] 小星星

将树镶嵌在图里面,等价于用树去覆盖这个图,每个点都被覆盖一次。 每个点都被覆盖一次,等价于,每个点至少被覆盖一次方案数=所有点都可以覆盖-至少有1个点未被覆盖+至少有2个点未被覆盖-至少有3个点未被覆盖……(这里的图上的点可以被树上的点重复覆盖) 求某些点不能被覆盖的方案数,可以用树上dp完成,Fi,jF_{i,j}表示树上第ii个点对应图上第jj个点,该子树的方案数 爆枚图上有哪些点一定不能

2017-06-15 19:52:57 467

原创 [HAOI2017]供给侧改革

先将询问离线,把询问按照r分类,从小到大回答每一个询问。 由随机的性质得知两个串的lcp不会特别长,我们令其最长为40 对于区间[1,R],[2,R],[3,R]…[R-1,R],求其中最长的LCP一定是单调不增的 从左到右将后缀的前40位插入字典树,字典树路径上存下最后一次访问该点的时间,第二次访问这个深度为dep节点的时候就能得到一对时间x,y表示以x开头的后缀和以y开头的后缀的LCP长度

2017-06-11 21:48:53 1466

原创 [HAOI2017]新型城市化

orz栋爷教我的这题 http://blog.csdn.net/werkeytom_ftd/article/details/72992793#include <bits/stdc++.h>#define N 20050#define M 1000050#define INF (1<<29)using namespace std;typedef pair<int,int> pii;int

2017-06-11 21:42:37 926

原创 Codeforces 235C : Cyclical Quest

【大意】 给一个长度为n 的字符串s,q个询问,每次询问一个串t,问s 有多少个子串与t循环同构。(起始位置不同的子串算作多个子串) 所有的字符均为小写字母,n≤106n\leq 10^6,q≤105q\leq 10^5,∑|t|≤106\sum|t| \leq 10^6 【解答】 对s构建后缀自动机,并且利用后缀链接(parent)数组进行树上动态规划,算出每个节点的right集合大小。

2017-06-10 22:11:22 440

原创 [BZOJ4874]筐子放球

做法很简单,把筐子看成点,球看成连接两条点的无向边,含有奇数条边的连通块即为答案。 思路是转化成图之后,相当于对于每一条边选择一个点使它的点权+1。对于每一个边数为偶数的连通块,存在一种方案使得所有的点权都是偶数;对于每一个边数为奇数的连通块,存在一种方案使得有点数-1的#include <bits/stdc++.h>#define N 1000500using namespace std;

2017-06-02 13:39:56 440

原创 [BZOJ4816][Sdoi2017]数字表格 数学

考虑每个fif_i对答案的贡献,就能得到式子 ∑k=1nf∑d|kμ(d)⌊nkd⌋⌊mkd⌋k\sum_{k=1}^nf_k^{\sum_{d|k}\mu (d)\lfloor \frac{n}{kd}\rfloor \lfloor \frac{m}{kd}\rfloor} 转化成枚举kdkd,令T=kdT=kd ∏T=1n(∏d|Tfμ(Td)d)⌊nT⌋⌊mT⌋\prod_{T=1}^n

2017-05-31 16:51:08 392

原创 [BZOJ4870][Shoi2017]组合数问题 矩阵快速幂

诶感觉这题很套路啊 听说赛场上写出来的人不多 可能比赛的时候比较紧张这题放最后一题没那么好像吧 解法到不是特别难相当于求一个模意义下的杨辉三角嘛 塞到矩阵里面转移就好了#include <bits/stdc++.h>#define N 55using namespace std;typedef long long LL;inline int rd() { int x=0,f=

2017-05-29 22:32:56 496

原创 [BZOJ4873][Shoi2017]寿司餐厅 网络流

选择区间[l,r],那么必须选择区间[l,r-1]和[l+1,r] 很容易可得一个最大权闭合子图的模型对于选取一个单点,花费的式子的形式是mx2+cxmx^2+cx 对每个单点开一个节点pp,对每个颜色开一个节点qq 对于单点编号为tt颜色为xx 每个pp连接到TT花费为xx,每个qq连接到T花费为mx2mx^2 选择单点,就必须选择对应的p和q跑一遍最小割即可 需要当前弧优化#inc

2017-05-29 22:30:28 543

原创 [BZOJ4872][Shoi2017]分手是祝愿 数学期望

先看N=k的,考虑一下怎么用最少步数解决这个问题。 一个做法是从高位到低位,没遇到一个开着的灯就将它关闭,易证这样的策略是最优的,而且是唯一的。 问题转化为目前有n个开关,其中有t个开关需要被按奇数次,求期望步数。F[t]表示由剩t个开关到剩t-1个开关所需要的期望步数。 Ft=tn+n−tn(1+Ft+1+Ft)F_t=\frac{t}{n}+\frac{n-t}{n}(1+F_{t+1}+

2017-05-29 22:23:29 911

原创 [BZOJ4869][Shoi2017]相逢是问候 扩展欧拉定理+势能线段树

根据扩展欧拉定理 当x≥ϕ(p) x\geq \phi(p)时有ax≡ax%ϕ(p)+ϕ(p)(modp)a^x\equiv a^{x \% \phi(p)+\phi(p)}(mod p) 我们发现在至多进行tt次操作后,a≡ca(modp)a \equiv c^a(modp),t为进行p=ϕ(p)p=\phi(p)多少次之后p=1p=1,tt的大小为O(log2p)O(log_2p)级别的

2017-05-27 14:19:43 541

原创 [BZOJ4868][Shoi2017]期末考试

上午做了他们省选的模拟赛 感觉好累啊,没啥状态 这题属于签到题,解法好想也好打,没心情拍,不过最后也算是签到成功了吧题目和学生可以分开来讨论,对两个数组分别排序 从小到大爆枚最晚出分的时间 分别算出等待的时间和调度的花费更新答案 注意B特别大的时候B一定不会作为最优解,直接特判掉不要算出来,那个值特别大会大于2642^{64} 时间复杂度取决于排序的复杂度,使用基数排序可以做到O(N)O

2017-05-27 11:23:23 577

原创 [BZOJ1055][HAOI2008]玩具取名 记忆化搜索

Fl,r,tF_{l,r,t}表示[l,r]区间的字符串是否能够用字符t代替 转移不是特别复杂,不过我还是拿记忆化搜索来写了 O(N3)O(N^3)状态,每个状态O(N)O(N)转移,总时间代价O(N4)O(N^4)#include <bits/stdc++.h>#define N 305using namespace std;int g[5][5][5];int dp[N][N][5],

2017-05-24 20:26:14 464

原创 一道有趣的数学证明题

试证明等式:∑j=1n∑k=j+1nCjnCkn(k−j)=nC22n2\sum_{j=1}^n\sum_{k=j+1}^nC_n^jC_n^k(k-j)=\frac{nC_{2n}^2}{2}从北京到广州两个半小时的飞机,上飞机前把题目抄在草稿纸上,心想飞机上无聊正好把这题给做了,做完看看电影睡睡觉估计就到了。然而这道题着实做了两个半小时,距离降落30分钟才搞定完整的解法,把解法在整理一遍的时间都

2017-05-23 20:45:02 1923

原创 [BZOJ1048][HAOI2007]分割矩阵 记忆化搜索

观察均方差公式 若将一个区域的代价定于为(该区域的和−平均数)2(该区域的和-平均数)^2,答案为代价的和n−−−−−√\sqrt \frac{代价的和}{n} 动态规划Fx1,y1,x2,y2,tF_{x_1,y_1,x_2,y_2,t}表示图上一个矩形,对这个矩形分割tt次得到的代价 当t=1时Fx1,y1,x2,y2,1=(sum−ave)2F_{x_1,y_1,x_2,y_2,1}=(

2017-05-23 20:06:25 366

原创 [NOI2014]魔法森林 二分答案

简单题吧 二进制各个位置是独立的 所以可以一位一位贪心来做 爆枚每一位是0还是1,然后O(n)O(n)验证 时间代价O(Nlog2M)O(Nlog_2M)#include <bits/stdc++.h>#define N 200050using namespace std;inline int rd() { int x=0,f=1;char ch=getchar();

2017-05-23 09:20:28 478

原创 [POJ2420]模拟退火

模拟退火模板 输出用%.0f不要用%.0lf WA一下午#include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<queue> #include<cmath> #include<ctime> using namespace

2017-05-17 20:23:50 385 1

原创 [URAL2062]Ambitious Experiment 分块

题目大意: 做一个粒子的实验,粒子初始有一定的能量,实验过程中倘若第i个粒子被注入k能量,那该粒子就会增加k能量,同时第2i,3i,4i……(即i的倍数的粒子)也会增加k能量。 有一台特殊的机器,能够为一段连续的粒子注入一定的能量,需要回答相应粒子能量的大小单点查询的时候爆枚它的约数,那么我们有O(N)O(N)次区间修改和O(NN−−√)O(N\sqrt N)次单点查询,使用分块可以使修改做到单

2017-05-17 12:24:34 375

原创 AtCoder Grand Contest 014做题记录

这场AtCoder的题目以结论题为主 代码都很短,想法也都很巧妙A - Cookie Exchanges按照题目描述暴力即可 关键在于时间复杂度的证明 对于三个数aa,bb,cc,不妨设a≤b≤ca\le b\le c,变换等价于对0,b−a,c−a0,b-a,c-a三个数变换之后再加上aa,即三个数减去最小值后对步数没有影响 不妨令减去aa之后的三个数为00,bb,cc,变换后三个数变成b

2017-05-09 17:18:02 811

原创 [POJ2286]The Rotation Game IDA*

爆搜题 用些技巧想办法把它写短咯一次操作至多使中间8个数中最大相同的数的个数加一 估价函数设置为8-中间8个数中最多的相同的数的个数#include <iostream>#include <cstdio>#include <cstring>#define N 105using namespace std;inline int rd() {int r;scanf("%d",&r);ret

2017-05-09 08:19:05 349

原创 [BZOJ4731][UOJ267]魔法小程序

先把代码读懂,可以理解成为c是b的高维前缀和 a[i]a[i]是第ii维的长度 显然长度大于1的维数不会超过log2(m)log_2(m) 暴力还原回b就行了#include <bits/stdc++.h>#define INF 2147483647#define N 1000050using namespace std;typedef long long LL;LL a[10050

2017-05-06 14:21:41 650

原创 GDOI2017总结

2017.4.29 - 2017.5.1在东莞举行了三天的GDOI比赛,比赛过程一波三折,结果差强人意,进了省队。Day0:预定了10:00的闹钟,但6:00就爬起来了。早上最后复习了一下多项式算法,跟着纪中的同学坐了两个多小时的车去到了酒店。晚上感觉很兴奋很激动,复习了一遍模板,10:30就睡了,期待第二天的考试能够取得好的成绩。GDOI Day1:比赛前在考场门口和纪中二中的小朋友聊天,内心还是

2017-05-02 19:17:56 1951 14

原创 [acm/icpc2016SEERC][CodeforcesGym101164] Castle KMP

相当于结尾单点插入,单点打标记,查询该字符串所有border的标记和。KMP维护border,转移的时候把标记和一起转移就好 原串border的border还是原串border O(n)扫一遍就行#include <bits/stdc++.h>#define N 13000000using namespace std;char s[N],ns[10];bool vis[N];int p

2017-04-27 10:24:51 514

原创 [acm/icpc2016ChinaFinal][CodeforcesGym101194] Mr.Panda and TubeMaster费用流

via. quailty 黑白染色定向 然后相当于每个点找一个后继(就能串成很多个环 每个点拆成左右两个 如果 i 是非必要点,那么左边 i 到右边 i 连一条权值 0 的边,表示我这个点连个自环(相当于就废掉了 其他的边该怎么连就怎么连 跑个最大权匹配,写成费用流就好了#include <bits/stdc++.h>#define INF (1<<29)#define N 1000

2017-04-26 15:57:40 721

原创 [BZOJ2716][Violet 3]天使玩偶 CDQ分治+树状数组

按时间分治,把每个询问拆成四个方向的查询,这样曼哈顿距离可以直接用减法得到 一维时间分治,二维x坐标排序,三维y坐标树状数组#include <cstdio>#include <algorithm>using namespace std;const int maxn = 1000000 + 10;const int INF = 1000000000;int max_x;int ans[ma

2017-04-23 20:12:44 2052

原创 [BZOJ3211]花神游历各国 势能线段树

势能线段树 维护区间不为1的元素数量 对于存在元素不为1的区间暴力递归修改/************************************************************** Problem: 3211 User: di4CoveRy Language: C++ Result: Accepted Time:2164 ms

2017-04-23 19:53:02 584

原创 [BZOJ1856][SCOI2010]字符串

即为Catalan数的定义 输出Catalan第n项即可/************************************************************** Problem: 1856 User: di4CoveRy Language: C++ Result: Accepted Time:800 ms Memory:1288

2017-04-23 19:47:24 448

原创 [BZOJ4861][Beijing2017]魔法咒语 AC自动机+动态规划+矩阵快速幂

对忌讳词语构建AC自动机 Fi,jF_{i,j}表示长度为ii,匹配到AC自动机第jj位的合法串方案数 当状态数少的时候用矩阵转移#include <bits/stdc++.h>#define N 5050const int mod = 1e9+7;using namespace std;typedef long long LL;int len[105],cnt,n,m,l,ans;

2017-04-23 09:26:34 1028

空空如也

空空如也

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

TA关注的人

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