- 博客(33)
- 收藏
- 关注
转载 BZOJ1146 CTSC2008 网络管理network
丧心病狂的数据结构题、、 树链剖分之后用线段树套一个随便什么BST维护第K大值、、 Code: #include <iostream> #include <cstdio> #include <algorithm> #include <set> #include <map> #include <qu...
2013-06-18 22:50:00
191
转载 BZOJ2242 SDOI2011 计算器calc
第一类询问:直接快速幂不会的右转百度 第二类询问:求个逆元再判一下不会的右转百度 第三类询问: 首先有费马小定理、、所以答案不会超过p、、 但是p的范围还是要T、、 于是想到二分或者分块、、、 二分的话感觉没什么前途、、 于是分块、、 (我不会打同余标记就用等于代替了、、) 设最终答案x=k[sqrt(p)]+i 那么有 y^x=z(mod p) y^(k[sqr...
2013-06-12 16:11:00
178
转载 THUSC2011 TS A1295 Necklace
因为要去THUSC了做一下以前THUSC的题、、 这个题是一个比较明显的概率DP、、 可以把状态用当前是第几个珠子、到目前为止的最长长度范围、当前珠子颜色表示、 具体点就是f[i][j][k]表示前i个珠子、最长长度不超过j、最后一个珠子的颜色是k的概率 那么f[i][j][k]=sigma(f[i-1][j][*])*p[i][k]-sigma(f[i-j-1][j][*!=k...
2013-06-10 17:16:00
159
转载 BZOJ2049 SDOI2008 洞穴勘测 cave
本题是一个动态树的模板题、 link-cut-tree的论文可以百度文库中找、 Code: #include <iostream> #include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> #include &l...
2013-05-23 21:57:00
142
转载 BZOJ3112 ZJOI2013 防守战线
【待填 Code: #include <iostream> #include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> #include <cstring> #include <vector&...
2013-05-21 22:28:00
85
转载 【TJOI2013 Day1合集】BZOJ3170 松鼠聚会 BZOJ3171 循环格 BZOJ3172 单词
松鼠聚会: 首先题目给出的松鼠之间的距离应该是max(|x1-x2|,|y1-y2|)、、 然后我们知道、如果用x'=x+y,y'=x-y的方式重构所有点的坐标、 两个点之间的距离就变成了max(|x1'-x2'|,|y1'-y2'|)、、 于是我们用给的两个数字解一个一元二次方程得到原来的坐标、、 然后前缀和乱搞搞统计曼哈顿距离和就好了、 Code: #incl...
2013-05-21 17:50:00
227
转载 【JLOI2013合集】BZOJ3090 赛车 BZOJ3091 卡牌游戏 BZOJ3092 删除物品 BZOJ3093 地形生成...
赛车: 这个题就是水平可见直线、、 水平可见直线怎么做呢、、 就是把所有直线按斜率排序、然后从前往后处理边、 当中维护一个栈、如果当前线和栈顶的交点在栈顶和栈顶-1的交点左边、那么弹掉栈顶、、 (可以这么理解、、就是栈顶超越栈顶-1之前已经被当前线超越、、所以永无翻身之日了、、 然后露出一个点也算的话会导致一些奇葩的情况、、特判处理一下就好了、、 特别有一个就是交点横坐标如...
2013-05-20 22:20:00
132
转载 POJ3974 Palindrome
题意很简单、、给定一个串求最长回文子串、、 然后就是一个裸的好似叫manachure算法的东西、、 用O(n)的复杂度求最长回文子串、、 Code: var s:ansistring; a:array [0..2000100] of char; p:array [0..2000100] of longint; cur,en,ans,len,vv,...
2013-05-20 11:02:00
79
转载 【APIO I】APIO2009 OIL采油区域 APIO2009 CONVENTION会议中心 APIO2009 ATM劫掠计划 APIO2010 特别行动队 APIO2010 PARTOL巡逻 A...
【Q:为什么要用这么长的标题 A:为了骗访问…… 浏览器突然奇葩了……我就不贴代码说说思路了…… 采油区域: 我们可以根据三个采油区域在横向和纵向上的重叠情况分成六种分布: (1)可以用两条横线分割 (2)可以用两条纵线分割 (3)可以分成左右两部分,其中左边可以分上下两部分 (4)……………………………,其中右边可以分上下两部分 (5)可以分成上下两部分,...
2013-04-22 09:13:00
131
转载 BZOJ1103 POI2007 大都市
这题目的意思大致就是本来有一棵所有边的权都是1的树、然后经过若干次操作把所有边的权值都变成0、中间会让你求根到一个点的权值和、 本来想过树链剖分、后来看看数据范围和如此弱的操作又感觉不是、、 然后分析一下、、这题就是快速求一个链上的数字和、、比如我们现在考虑根、就是相当于把根的所有子孙权值和剪掉这个儿子之外的所有儿子的子孙权值和、、 也就是说、每个点的权值只在它和它的子孙上有效、、...
2013-02-21 22:52:00
97
转载 BZOJ1016 JSOI2008 最小生成树计数
首先必须知道这样一个性质:同一个图的所有最小生成树等权值的边的数量相等、 那么我们先求任意的一个MST、得到每个权值出现的次数(这里可以先离散化方便处理)、 然后根据题目所给的很好的性质(每个权值出现不超过10次)、对每个权值用2^10枚举取边的情况、然后再看是否还存在一棵MST、 复杂度大概是不到2^10*M*M/10的、、 Code: #include <i...
2013-02-06 20:42:00
145
转载 POJ 计算几何专项训练(2) 【1269】&【1410】&【1696】&【3347】&【2826】
POJ 1269Intersecting Lines 题意很简单、判断两条直线是重合平行还是相交、如果相交输出交点、 Code: #include <iostream> #include <cstdio> #include <algorithm> #include <cmath> #define EPS 1e-9 ...
2013-01-18 20:44:00
253
转载 POJ 计算几何专项训练(1) 【2318】&【2398】&【3304】&【2653】&【1556】&【1066】...
POJ 2318 TOYS 题意是在一个大矩形里有n条分割线把矩形分割成n+1部分、再给出一些玩具的坐标、要求统计每个部分内有多少个玩具、 具体做法就是二分求解出当前玩具右方的第一条线、这可以用叉积判断、 Code: var res:array [0..5002] of longint; p:array [0..5002] of record x1,x2,y1,y...
2013-01-18 12:32:00
145
转载 BZOJ1901 Dynamic Rankings
区间第K大数终极版、 虽然好似可以主席树、、但是为了锻炼代码能力写了树套树、 果然代码能力就是不行、 不得不承认很少有人的代码会写得比我丑了、、是该改进下了、 Code: #include <iostream> #include <cmath> #include <algorithm> #include <cstdio&...
2013-01-15 09:25:00
102
转载 BZOJ2982 combination
我就不吐槽这题面确实不怎么和谐了、、 直接求组合数大致是一个nlogn级别的工程、在这里显然是不可接受的、 于是我们用到了lucas定理、 这个定理的内容大致可以被表述为: C(A,B)与A和B分解为P进制后各对应位数的组合数的乘积对P同余、 我也不会严格证明、、大致可以自己想想、、 Code: #include <iostream> #includ...
2013-01-13 20:38:00
87
转载 BZOJ2815 ZJOI2012 灾难
【问题描述】阿米巴是小强的好朋友。 阿米巴和小强在草原上捉蚂蚱。小强突然想,如果蚂蚱被他们捉灭绝了,那么吃蚂蚱的小鸟就会饿死,而捕食小鸟的猛禽也会跟着灭绝,从而引发一系列的生态灾难。 学过生物的阿米巴告诉小强,草原是一个极其稳定的生态系统。如果蚂蚱灭绝了,小鸟照样可以吃别的虫子,所以一个物种的灭绝并不一定会引发重大的灾难。 我们现在从专业一点的角度来看这个问题。我们用一种叫做食物网的有...
2013-01-12 11:21:00
150
转载 BZOJ2851 Violet 0 极限满月
(这个题目想法太神了、、我看了好多神犇的讨论才弄懂、、 (鉴于我看的时候理解得很困难,我就讲详细点、 要存储下所有的元素、直接放在一个树结构或者什么里面显然是不行的、、 考虑第i个集合里的所有数字都不会超过i,我们从它所有儿子的号码向i连有向边最终构成的将会是一个DAG、、 这样我们就可以把Ai存储为第i个点的所有前驱结点了、 再考虑Bi的含义、 Bi就是第i个结...
2013-01-11 21:38:00
114
转载 BZOJ2561 最小生成树
这题乍一看很没有办法下手、、、 但是我们可以想到说、如果一个边有放在MST上的可能、那么权值小于它的边肯定做不出一个生成树、 (这里貌似有个定理,就是说对同一个无向图的所有最小生成树对应权的边的数量对应相等,比如都有2条权为1的和一条权为2的,所以可以得到上面这个结论) 那么肯定是要在权值小于它的边中删掉一些使得剩下的不能做成一个生成树、没错就是最小割、、 可以这样想、 对于一...
2013-01-10 22:39:00
90
转载 BZOJ1031 JSOI2007 字符加密
除草向、 裸SA、处理环的话就复制一遍挂在后面就好了、 Code: const maxm=400001; var ch:char; s,trk,rank,sa,tsa,sum:array [0..500001] of longint; len,i,j,p,got:longint; begin {assign(input,'cipher.in')...
2013-01-04 23:00:00
98
转载 BZOJ1006 HNOI2008 神奇的国度
这个题目是一个弦图的经典题、 先用MCS求完美消除序列然后逆序贪心染色,求一个最小染色数就可以了~ Code: #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> #...
2012-11-25 21:54:00
201
转载 TYVJ1645 叠爱心
这题首先一看是一个很显然的最大流模型。。 但是图中有1000*1000个点,用最大流算法是无论如何都过不去的~ 但是不难发现,本题的模型是一张平面图,平面图上的最大流可以用最大流最小割定理转化为对偶图上的最短路问题。。 把左下建成一个点、右上建成一个点,随便哪个为源点跑一次最短路就可以了。。 但是本题时限还是比较紧的。。SPFA据说可过但是也许我写的太渣。。推荐dij+heap~...
2012-10-24 13:46:00
80
转载 BZOJ1045 HAOI2008 糖果传递
前段时间TYVJ的某场模拟赛好似有这个题、、模型就是环形的均分纸牌、、 这个题目其实主要是数学分析啦、、 从线性的均分纸牌出发、令a[i]为纸牌树,k为每堆的目标牌数、 记p[i]=k-a[i]+p[i-1] 含义就是第i堆需要从后一堆拿的纸牌、 那么对p数组求和就是答案了、 对这个环形的、我们这样考虑、 记sum[i]=sigma(p[j]-p[j-1]) j<=i...
2012-09-24 22:07:00
199
转载 TYVJ1613 不和谐的公司
嗯。这个题目本身不难,但是想法还是有一点特别的,所以发出来说一下。 朴素的想法是,对每一个叶节点,算一遍整个树的费用然后比较。。 但是这样是平方的。必然要跪。 然后注意到一点很好玩的。就是如果任意一点确定,那么它的父亲也就确定,父亲的父亲……也就确定了。 那么我们找一个大家的父亲——根节点,对每个叶节点计算保持它不改的时候根节点的工资,然后统计一下即可。 Code: #i...
2012-06-12 22:36:00
76
转载 【TYVJ水题三连发】1502 兴建高铁 1568 Rabbit Number 1673 位图
说是水题。。其实本蒟蒻1A的也只有第二道。。。惭愧惭愧。。。 TYVJ1502 兴建高铁 这个题目其实就是一搜索,愿意BFS或者DFS都可以,SPFA也随意。不过鉴于数据不大,推荐还是DFS(写起来比较短嘛) Code: #include <iostream> #include <cstdio> #include <cmath> ...
2012-06-11 22:24:00
201
转载 【最大01子矩阵二合一】TYVJ1542 棋盘制作 POJ1964 City Game
(标题里写个关键词骗点击) 这俩题实际上是一个东西,就叫最大01子矩阵(瞎叫的)。 大致是这样的模型:有一个由0和1组成的矩阵,然后要求最大的一个矩阵使得其中只包含0(1同理)。 那么这个怎么做呢? 当然是可以做的(废话),结合求最大正方形的方法,我们可以这样乱搞: 首先预处理出所有点可以向上扩展的最长距离和向左扩展的最长距离——这个是N*M的。 然后对每个点,从这个点出发向...
2012-06-10 21:27:00
114
转载 BZOJ2190 SDOI2008 仪仗队
这题目一看数学色彩就很浓 通过观察图(这个。。)我们就可以发现,如果按对角线剖分的话,两边可以看到的学生数都恰好是1~n-1范围内的互质数对数,即sigma(phi(i)) phi就是欧拉函数,关于线性求欧拉函数可以点这里: http://blog.youkuaiyun.com/ji414341055/article/details/5771066 那么这题就基本已经解决了,答案就是1~n-...
2012-06-05 22:50:00
153
转载 TYVJ1658 奶牛同盟
就是线性筛嘛。。 线性筛到处都有,本蒟蒻就不没事介绍了。 Code: #include <iostream> #include <cstdio> #include <cmath> #include <algorithm> #include <cstdlib> using namespace std; ...
2012-06-02 21:49:00
58
转载 TYVJ1669 周瑜的刁难
首先YM XLK大犇犇 BlinKer20:45:36傻逼暴力。等会我写。。大概意思就是如果是R*C的过R+C-gcd(R,C)BlinKer20:46:15显然gcd(R,C)是n的约数。暴力这个东西。一共是lgn种可能。然后On暴力R或C算另一个。看是不是gcd为那个数。 从以上的文字中很容易可以看出这样的水题对于大犇来说已经不值一提了。 作为一个蒟蒻,我整...
2012-06-02 21:14:00
68
转载 BZOJ1601 Usaco2008 Oct 灌水
就一个最小生成树。 本蒟蒻还交了三次,最后才发现是数组开小了。。 不能再刷水题了。。。 Code: #include <iostream> #include <cstdio> using namespace std; const long maxn=999999999; long pre[301]; long g[301][301];...
2012-05-14 22:22:00
145
转载 BZOJ2705 POJ2480 SDOI2012 Longge的问题
数论题,本人数学不好,怕讲不清楚。。发一个貌似官方的题解。 Code: #include <cstdio> #include <iostream> using namespace std; int main(){ long long n,p,a,ans; while (cin >>n){ ans...
2012-05-14 22:14:00
124
转载 JSOI2009 BZOJ2257 瓶子和燃料
想法其实是挺巧妙的。。找到所有数的所有因数,统计最大的一个出现过K次的因数。 Code: #include <cstdio> #include <iostream> using namespace std; long a[1001]; long s[1000001]; long gcd(long a,long b){ if (a%...
2012-05-14 21:46:00
99
转载 NOI2002 银河英雄传说
搞了几次才过。。。太弱了。。。 本题的关键想到扩展并查集,在基础并查集的基础上额外维护一个集合的大小和当前点在集合中的位置就可以了。 Code: type node=record fa,d,l:longint;end; var f:array [0..30001] of node; m,a,b,i:longint; ch:char; function...
2012-05-13 11:13:00
143
转载 TYVJ 1138 Cannot神牛的RP采摘
第一篇文章就弄个水题吧。。 范围太小,DP或者搜索都可以过,就是无解的判断容易弄错。 Code: var f:array [0..201,0..201,0..201] of longint; a:array [0..201,0..201] of longint; n,m,k,i,j,v,bx,by,ex,ey:longint; function ma...
2012-05-12 21:34:00
90
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人