4 YH_YML

尚未进行身份认证

我要认证

もし世界が色を変えて 帰り道が分からなくても 行かなくちゃ

等级
TA的排名 19w+

bzoj 3745: [Coci2015]Norma

考虑分治,对于区间[l,r],计算左端点在[l,mid],右端点在[mid,r]的区间对答案的影响然后自己推公式。#include #include #include #include #define rep(j,k,l) for (LL j=k;j<=l;++j)#define red(j,k,l) for (LL j=k;j>=l;--j)#define max(a,b)

2017-08-11 08:56:36

2017Astar资格赛1002 度度熊的王国战略

啊啊全局最小割?看了一天没看懂考虑一个最小割,把原图分成两半(废话左边取一个点为S,右边去一个点为T,跑出来的最小割一定是答案(废话于是取1为S,随机T,1000组,保证不重复,随机数据随便过但是有卡点,3000个点被分成了2999+1或2998+2这两种情况都是可以预处理的当2997+3时有三个点随机到一个就行,1000次,A掉的概率有,大概每个点70%想想卡点不

2017-08-07 10:13:57

Astar2017资格赛1005 寻找母串

S是一个偏串,长度为n的串也是偏串。那么从n中把S挖去,还是一个偏串即问你长度(n-s)的偏串数量*(n-s+1){s在串中可插入的位置数}长度为k的偏串===就是第k/2个卡特兰数于是mmp n大就算了膜数也大分段打出阶乘表,隔200000个打一个表,然后暴力#include #include #include #include #define mod

2017-08-07 09:58:05

loj #6164. 「美团 CodeM 初赛 Round A」数列互质

莫队==每次维护每个数出现的次数,再上链表维护出现次数的次数。发现不同的出现次数最多根号n个,因为要出现次数有不同的x个,至少要有x*(x-1)/2个数。然后考虑每次询问暴力枚举。先把k分解成质因数,不超过logk个,分解时要判定大质数,不然GG对于每个出现次数暴力验证,复杂度#include #include #include #include #include

2017-07-31 15:49:25

loj#6169. 相似序列

讲题前先讲故事miaom:你快来做这道题啊啊==我已经A掉了我教你 啊YYMHL:吼啊10 min latermiaom:你听懂了嘛?YYMHL:不对啊10 min laterYYMHL:我把你hack掉了啊miaom:!!!那  你帮我改一下就当你自己做的好了以下内容转自http://blog.csdn.net/Miao_zc/article/deta

2017-07-31 11:03:46

ZJOI一试酱油记

DAY -3晚上到了宾馆(说好红太阳的)然后打sgs看电视到凌晨,然后睡觉DAY -2早上讲搜索,看起来很和谐(之后便发现这是唯一听得懂的下午讲完STL讲杂题,撑不住了睡觉(增么玩嘛晚上打sgs泼隔膜(但奇迹的很早(11点半)睡觉了DAY -1讲了一天的杂题,泼了一天的隔膜晚上看完电视就睡了(一天比一天早DAY 1T1 smg啊,10分暴力调了3小时QAQ

2017-03-23 20:53:50

[SDOI2006]保安站岗

对每个节点存三个状态:未保护(但子树完全保证符合);被保护;自己站一个警察。然后就好了n才1500让我开始想到别的地方去了QAQ(TMD)INF比-1好用到不知道哪里去了#include #include #include #include #define rep(j,k,l) for (long long j=k;j<=l;++j)#define red(j,k,l)

2017-03-07 19:46:28

[SDOI2009]HH去散步

第一道矩乘也就不口胡了吧代码还是很simple的~#include #include #include #include #define rep(j,k,l) for (int j=k;j<=l;++j)#define red(j,k,l) for (int j=k;j>=l;--j)#define N 121#define mod 45989using namespac

2017-03-03 20:35:28

[LNOI 2014] LCA

方案一:[a,b] 的lca和可以变成[1,a] 与 [1,b] 的答案和。于是离线。copied from wlc1121方案二:询问的是区间,于是想到莫队树剖+线段树同上维护。我自己没写过一个根号*两个log==QAQ留给底层优化大师去实现吧...---------分割线---------(隔壁q234rty说可以用欧拉序列去掉一个log)(

2017-03-02 21:04:30

[SDOI2010]大陆争霸

听说只能用Dijkstra做我已经不能分辨DJ和SPFA了存下每个点的最小到达时间f[i],最晚开放时间g[i],之后用max(f[i],g[i])去增广。#include #include #include #include #define rep(j,k,l) for (int j=k;j<=l;++j)#define red(j,k,l) for (int j=k;j>

2017-02-27 20:12:50

[HNOI2013]切糕

不管高低差限制,把每一竖串连起来做最小割。有高度差限制用inf限制。图文伺候:http://blog.csdn.net/thy_asdf/article/details/50428973#include #include #include #include #define rep(j,k,l) for (int j=k;j<=l;++j)#define red(j,k

2017-02-24 18:49:35

[HEOI2016]排序

二分答案还是比较容易想到的对于每一个二分出来的东西,扫一遍初始数组,小于该数赋0,大于等于赋1于是区间排序变成了区间数0 和 区间赋值。#include #include #include #include #define rep(j,k,l) for (int j=k;j<=l;++j)#define red(j,k,l) for (int j=k;j>=l;--j)#d

2017-02-22 20:49:32

[SDOI2009]Elaxia的路线

先以x1 x2 y1 y2为起点跑4遍SPFA然后判定各条边在不在最短路上=如果两条最短路上都有则加入新图(有向边)对新图跑拓扑求最长链萌萌哒cd:可以无向边啊(TMD还A了我天老爷)#include #include #include #include #define rep(j,k,l) for (int j=k;j<=l;++j)#define red(j,k,l)

2017-02-22 20:45:51

CodeForces - 487E Tourists

题意:询问两点任意路径上点权的最小值,可修改点权先把所有点双处理一下=造一个新点向所有分量内的点连边,取其中一个点作为父亲,权值是除父亲外点权的最小值(修改时同时修改父亲)=于是可见,任意点双内都是可以乱走的,所以走过新建店相当于对该分量内所有点取min,同时lca为新建点是还要把它爸算进去取min什么的好像有什么multiset=(十分害怕#include #inc

2016-12-14 13:23:24

CodeForces - 486E LIS of Sequence

对于每个点求出开头到该点的最长上升子序列长度==以及该点到结尾的最长上升子序列长度(该点都强制使用)记为dp1和dp2于是如果dp1[i]+dp2[i]-1与LIS的长度相等 则该点为2或3否则为1对于不是1的点如果有别的点与它dp1相同则为2(即可以选该点也可以选别的相同的点)否则为3#include #include #include #include #def

2016-12-11 20:03:09

ZOJ - 3820 Building Fire Stations

题意:给你一棵树求两个点使得树上所有点到这两个点路径长度的最小值最小取直径的中点拆掉拆成两棵树,分别求两边的直径中点就是答案==QAQ细节真多==还会爆栈不开心#include #include #include #include #define rep(j,k,l) for (int j=k;j<=l;j++)#define N 400005using na

2016-12-11 15:40:59

HDU3686 Traffic Real Time Query System

找出所有的割点然后把两个割点之间的所有边缩成一个点于是变成了求路径上割点数目然而炸了3天=生命不息=Tle不止和wzf2000对拍跑的还比他快QAQ#include #include #include #include #define rep(j,k,l) for (int j=k;j<=l;++j)#define red(j,k,l) for (int

2016-12-08 15:17:49

UVA - 11604 General Sultan

对每两个字符串进行匹配然后连边=看程序应该能看懂开始st没清零不停地爆oj#include #include #include #include #define rep(j,k,l) for (int j=k;j<=l;++j)#define M 25#define N 110#define P 250010using namespace std;int n,T

2016-12-06 18:17:17

CQOI2012 交换棋子

现在艹道水题都要半小时+=感觉整个人都不好了把点拆掉就可以了=因为次数限制在格子上又因为走进走出要2次直接÷2=想想头和尾只踩了一次所以除以2前先+1就好了#include #define rep(j,k,l) for (int j=k;j<=l;++j)#define K 22#define N 805#define M 50005using namespace std;

2016-12-01 14:50:04

NOIP2016 DAY2

T1:可以预处理啊开始以为20倍常数要gg结果ccf的机子没想象中那么233#include #include #include #include #define rep(j,k,l) for (int j=k;j<=l;j++)#define N 2005using namespace std;int cl[N][25],sm[N][N],T,k;int gt(i

2016-11-29 18:45:03

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!