自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lych的博客

nothing

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

原创 bzoj 4688: One-Dimensional 矩阵乘法

矩乘sb题。AC代码如下:#include#include#includeusing namespace std;int n,m,ta,tb,tc,mod;struct matrix{ int p[55][55]; }a,b;matrix operator *(const matrix &x,const matrix &y){ matrix z; memset(z.p,0,

2016-09-04 20:17:12 773

原创 bzoj 4692: Beautiful Spacing 二分

鏼一道sb题神清气爽。       二分答案后就可以求一个点作为末尾前面一行结尾的范围了吧,然后xjblg就好了。AC代码如下:#include#include#include#define ll long long#define N 50005using namespace std; int n,m,dp[N]; ll s[N];bool ok(int x){

2016-09-04 19:42:31 657

原创 bzoj 4606: [Apio2008]DNA 递推

几天前的题了,都不太记得了。       大概是令dp[i][j][k]表示i-n,上一个字母是j,已经分成k段的方案数。然后对k求一个前缀和再一位一位搞下去就好了吧。AC代码如下:#include#include#include#define ll long long#define N 50005using namespace std; const char c[5]=

2016-09-04 19:13:49 1187

原创 Codeforces Round #369 (Div. 2) 手速练习赛

一不小心打开cf发现有一场div2在20:00,感觉非常资瓷,作为一个unrated狗感觉是个很好的涨分机会,然后就去注册了。       打比赛前发现注册8000+,害怕。。。       比赛开始以后网卡了,,,很不高兴,点开题目的时候估计已经有人A题了。       打开A题题面拉到百度翻译,发现是一道幼儿组好题,就随手过了pretest,这种sb题还能fst我就直播***

2016-08-30 11:26:00 1218

原创 ceoi2010 切题记

17th Central European Olympiad in InformaticsTasksThe Alliances(Day 1)(100/100)An Arithmetic Rectangle(Day 1)(100/100)Bodyguards(Day 1)(100/100)The MP3 Player

2016-08-08 15:39:02 879

原创 bzoj 4650: [Noi2016]优秀的拆分

原来只会两个log平衡树合并。。后来围观claris在uoj群上秒题后会了这道题。       枚举A(B)的长度L,然后枚举i=kL,考虑前缀i,i+L和后缀i+1,i+L+1,求出前缀的lcp和后缀的lcp,然后合法的方案就在一个方案内。差分一下即可。注意要避免重复。AC代码如下:#include#include#include#define N 30005using na

2016-08-04 20:08:27 1730

原创 bzoj 4590: [Shoi2015]自动刷题机

二分答案sb题。AC代码如下:#include#include#include#define ll long long#define inf 100000000000000llusing namespace std;int n,m,a[100005];int calc(ll x){ int i,ans=0; ll sum=0; for (i=1; i<=n; i++){

2016-08-03 20:58:43 1108

原创 bzoj 4621: Tc605 动态规划

动态规划的水平真的是太差了QAQ。。普及组的dp都不会了       注意到结束后的数组一定是一些数字段,且数字前后相对顺序不变。同时可以得到某一个数字最多向前后延伸多少位。      考虑对结束后的数组dp,令dp[i][j]表示到第i位,操作了j次的方案;由于次数限制,所以对于每一个数字段最多操作一次。考虑转移,假设第i位左右可以延伸到[l,r],那么枚举延伸的右端点k,显然dp[k]

2016-08-03 20:28:13 1627

原创 ceoi2011 切题记

18th Central European Olympiad in InformaticsTasksSimilarity(Day 0)(100/100)Balloons(Day 1)(100/100)Matching(Day 1)(100/100)Treasure Hunt(Day 1)(100/100)

2016-08-03 16:20:47 1801

原创 NOI2016 之看题跑

今年NOI好难啊,还好没进队。(十年OI一场空,一试我就见祖宗)       由于没有注册同步赛(惨啊),就只能看题跑了。       第一题95分暴力分什么鬼。。。不过我也只会Nlog^2N的splay启发式合并了。。围观uoj群上claris秒题。       第二题好像是个乱搞好题,黈力考场上写了取周围25个点的tarjan因为多组数据他特判没有读完就continue就biubi

2016-07-25 09:50:49 1725

原创 多校联合自爆记

两个小时切了3道sb就自暴自弃了。。。讲道理这场题目挺简单的啊。1001:求出最小生成树统计每条边的贡献;1002:博弈论(不是我做的)1003:注意到两个点当且仅当它们之间所有的行(列)中的#都成单调分布时距离为Manhattan距离+2,统计一下即可。1004:注意到不同的gcd最多NlogA个,预处理然后开map维护1005:8!枚举阴珠子的顺序然后跑最大匹配1006

2016-07-20 19:28:20 1340

原创 poi2009 切题记

16th Polish Olympiad in InformaticsTasksFire Extinguishers(Stage I)(100/100)Pebbles(Stage I)(100/100)Algorithm Speedup(Stage I)(100/100)Elephants(Stage I)

2016-07-19 10:30:43 1338

原创 pa2011 切题记

PA好难啊。。而且还没有官方题解。根本切不动啊(而且还卡常数卡空间)Algorithmic Engagements 2011TasksTulips(Round 0)(10/10)Rooks [B](Round 1)(10/10)Unlucky [A](Round 2)(10/10)Climbing [B]

2016-07-11 17:00:08 908

原创 poi2011 切题记

18th Polish Olympiad in InformaticsTasksConspiracy(Stage I)(100/100)Lollipop(Stage I)(100/100)Lightning Conductor(Stage I)(100/100)Shift(Stage I)(100/100)

2016-07-06 16:16:57 1663

原创 bzoj 4631: 踩气球 线段树建图

显然可以看成是二分图然后暴力连边。每次操作相当于在左边删一个点,然后查询右边有多少点没有边连向它。       线段树优化一下建图即可。AC代码如下:#include#include#include#define ll long long#define N 200005#define M 10000005using namespace std;int rt,n,m,an

2016-07-03 09:41:45 1718

原创 THUSC2016 酱油记

T2SB题不会做,OI无望,回家种田。      我是SB      我是SB      我是SB      我是SB      我是SB      我是SB      我是SB      我是SB      我是SB

2016-06-05 21:53:55 1495 1

原创 bzoj 2660: [Beijing wc2012]最多的方案 递推

本来想打个lct的。。。发现太浪了时间不够用了。       于是打算随手水一发。       结果发现自己这种傻逼题都不会写了。。。。。。。。满满的滚粗既视感QAQ。。       考虑第k个斐波那契数的方案f[k],显然它可以由自己构成;如果选第k-1个斐波那契数,那么显然方案就是f[k-2];否则只有一种方案。       然后dp令f[k][0]表示不选第k个斐波那契数的方

2016-06-04 21:05:57 1228

原创 poi2010 切题记

17th Polish Olympiad in InformaticsTasksGuilds(Stage I)(100/100)Railway(Stage I)(0/100)Beads(Stage I)(100/100)Divine Divisor(Stage I)(100/100)Intell

2016-06-03 20:53:37 955

原创 bzoj 2034: [2009国家集训队]最大收益 贪心优化特殊图最优匹配

显然这是一个非常明显的最优匹配模型,但是由于N       考虑贪心,我们把所有的任务按收益从大到小排序,然后按顺序能加入就加入,易证这样是最优的。       注意到题目中时刻的范围非常大,但是注意到实际上有用的点只有O(N)个,算法是:一开始所有点是黑点,然后对某个任务,找到它起始时间之后的第一个黑点染成白色;对所有点做一次之后的白点就是有用点。       因此问题变为判断某些任

2016-06-02 08:21:39 1808

原创 bzoj 1151: [CTSC2007]动物园zoo 状压dp

动态规划水题。。       令f[i][j]表示考虑第1~i个位置,i~i+4位置上面移走或者不移走的状态为j时的最优解。预处理g[i][j]表示在第i位状态为j时的收益,这样就可以O(1)转移了。       由于题目是环,因此要求首尾的部分状态要重叠;枚举前4位固定不变的状态在进行dp。时间复杂度O(2^4*N*2^5)=O(2^9N)。       (随手写一发就rk2了什么鬼

2016-06-01 09:26:41 1387

原创 bzoj 1150: [CTSC2007]数据备份Backup 贪心&堆

首先连接的显然是相邻的一对楼,那么我们对于这些办公楼求出相邻的之间的距离构成的长为N-1序列,相当于在里面取出K个不相邻的数使它们和最小。       显然每次贪心地取,然后考虑取走一个数后和它相邻的部分,如果要取且增加一个数,那么权值为新增的数的和-要去掉的权值的和。然后扔进优先队列即可。AC代码如下:#include#include#include#include#incl

2016-06-01 07:19:18 1079

原创 bzoj 4289: PA2012 Tax 最短路

QAQ手写堆好慢。。。       把一条边拆成两条,然后把边看成新的图中的点。然后考虑原图中的点x的入边和出边,显然每一条入边在原图中对应一条出边,在新图的这两个新点上连边为原图边权;然后由于一个点的点权为它出边和入边的较大值,考虑对x的出边排序后,相邻两条小的向大的连边权为原图边权差值,大的向小的连边权为0。       然后处理一下源点和汇点即可。。       不是很清楚SPF

2016-05-31 07:30:01 1467

原创 bzoj 4260: Codechef REBXOR Trie

sb题。。正的反的建Trie贪心走更新答案即可。      (整天sb题切切人生没希望了)。AC代码如下:#include#include#include#define N 400005using namespace std;int n,tot=1,a[N],f[N],g[N],bin[35],ch[13000005][2];int read(){ int x=0; c

2016-05-30 15:14:03 613

原创 bzoj 2658: [Zjoi2012]小蓝的好友(mrx) Treap

Treap神题。。。首先将问题转化为补集即求不含一个坏点的矩形个数。       考虑这道题目的暴力;显然我们枚举矩形的下边界,得到每一列可以向上拓展多少(视为高度),用单调队列可以求出对于列i向左向右拓展到多少然后就能求出该下边界的答案了。       注意到如果把向左能拓展到的看成是在dfs一颗树时入栈的序号,向右能拓展到的看成是在dfs时出栈的序号,那么显然这可以看成一棵树的dfs序

2016-05-30 14:15:56 1413

原创 bzoj 3112: [Zjoi2013]防守战线 单纯形

单纯形转对偶图。。       由于是全幺模,直接用int存就好了。       常数没有优化慢的飞起。。。AC代码如下:#include#include#includeusing namespace std;int n,m,a[1005][10005];void pvt(int x,int y){ int i,j; for (i=0; i<=n; i++) if

2016-05-27 19:17:46 1058

原创 bzoj 3559: [Ctsc2014]图的分割 并查集

看到就猜是把边权从小到大排序然后插件去。。然而事实上排序后某条边必须插就插这条边是对的!       考虑一条边(x,y,z),x所在集合为u,y所在集合为v,其中u!=v;那么如果z       显然这样也是完美的,因为对于一个集合u,如果可以分类为p和q,那么连接p和q之间的边是不会连的,这样就矛盾了。因此必然完美。AC代码如下:#include#include#inclu

2016-05-27 13:49:15 835

原创 bzoj 4555:[Tjoi2016&Heoi2016]求和 多项式求逆

如果没有2^j和j!,那么题目就是求Σ(i=0,n)Bi(Bi表示第i个贝尔数),而Bi=Σ(j=0,i)S(i,j)。       考虑第二类斯特林数的含义为将i个不同的数分成j个集合的方案数,那么*j!就是讲i个不同的数分到j个有序集合的方案数,那么令Fi=Σ(j=0,i)S(i,j)*j!,则Fi表示将i个不同的数分到任意多个有序集合的方案数。考虑Fi的递推式,枚举最后一个集合的大小k,

2016-05-27 07:58:54 2971

原创 bzoj 3555: [Ctsc2014]企鹅QQ hash

哈哈20s卡过~\(≧▽≦)/~       不过用的是双hash。。。跑得慢也正常。。       sb题。直接枚举不同的哪一位其余的hash判断是否相同即可。具体可以快排或者用哈希表来统计答案。AC代码如下:#include#include#include#define mod1 1000000009#define mod2 900000083#define ll l

2016-05-26 15:11:50 627

原创 bzoj 3152: [Ctsc2013]组合子逻辑 贪心&优先队列

令k表示当前还能拓展多少位;如果不能拓展的话,就从当前所有的数中选最大的并删除,那么这个最大的数-1就是还能拓展的位数,同时答案+1。       注意一下细节就好了。AC代码如下:#include#include#include#include#includeusing namespace std;int n,a[2000005]; priority_queue q;

2016-05-26 13:51:55 1417

原创 bzoj 3151: [Ctsc2013]因式分解 数学

假设分解为∏(pix+qi),那么就有∏pi=An,∏qi=A0。由于有pi       至于于是判断,可以考虑在模意义下判断,选70个大质数分别判断即可。。。       剩下的就是码码吗了。。AC代码如下:#include#include#include#include#define ll long longusing namespace std;cons

2016-05-26 10:41:22 1179

原创 bzoj 3148: [Ctsc2013]没头脑和不高兴 数学&线段树

考虑两个纸牌i和j满足ia[j]则对答案有贡献为1;分四种情况讨论:       1.i和j都没被排序,期望贡献1/2;2.i和j都被排序,期望贡献0;       3.只有i被排序,假设被排序的有t个数,那么在期望情况下这t个数是均匀分布的,则a[j]比a[i]小的概率为Pi/(t+1),Pi表示i在t个数中是第几个;       4.同理只有j被排序时期望为(t-Pi+1)/(t+

2016-05-25 18:30:01 1280

原创 bzoj 3149: [Ctsc2013]复原 dfs

虽然表算是神奇的分组但是只要搜搜搜就过去了。。。       每个连通块分别考虑,然后枚举这一条弦的两个端点;如果一个端点已经确定,那么另一个端点的范围必然是一个区间,用位运算加速即可。然后就过了。。。       最大独立集的话子集dp一下就好了。。AC代码如下:#include#include#include#define N 25#define M 1300005u

2016-05-25 08:44:04 1105

原创 bzoj 4314: 倍数?倍数! 数学

我们可以把集合改成序列,然后答案再/K!,这样就简单很多了。注意此时1,2,2算两次。       实际上,考虑前K-1个数,我们随意取,这样最后一个数实际上是固定的;但是可能会出现重复的情况,那么此时我们统计最后两个数重复,也就是前K-2个数随意取,且满足前K-2个数的和S使得S+2x≡0(mod N)有解的方案。注意到该方程有解当且仅当S≡0(mod gcd(2,N)),那么对于特定的

2016-05-24 16:55:09 1281

原创 bzoj 3328: PYXFIB 数论&矩阵乘法

AC代码如下:#include#include#include#define ll long longusing namespace std;ll n; int m,mod,cnt,yz[100005];struct matrix{ int p[2][2]; }a;matrix operator *(const matrix &x,const matrix &y){ matr

2016-05-24 12:59:45 1213

原创 bzoj 3150: [Ctsc2013]猴子 高斯消元

范围N       显然我们可以令f[S]表示手上牌集合为S时的胜率,然后高斯消元或者多次迭代出解。       然后打表发现若A∩B=∅,则f[A∪B]=f[A]+f[B],如果这个成立,那我们就可以令f[i]表示手上牌为i的胜率然后高斯消元辣~\(≧▽≦)/~。       考虑另一个游戏:三个人a,b,c,手上的牌为A,B,C,然后任意选两张牌如果不在同一个人手中就和这道题目一样

2016-05-24 08:46:33 1209 1

原创 bzoj 3243: [Noi2013]向量内积 矩阵乘法

这道题目中D应该是       我们可以把两个向量的点积看成1*d和d*1的矩阵相乘;那么我们将原始矩阵A转置得到A',A*A'[i,j]就是向量i*向量j的点积。       但是这样是O(N^2D)的;考虑用一些黑科技。考虑mod=2时,假设对于i,我们求出i之前的所有向量与i的点积的和;如果所有的点积都>0即=1,那么显然点积的和对二取模=(i-1)%2;否则如果≠(i-1)%2,显

2016-05-23 21:00:29 2762 1

原创 bzoj 4558: [JLoi2016]方 数学&计数

首先通过容斥转化为求:所有正方形-至少有1个坏点的正方形+至少有2个的-至少有3个的+有4个的。       所有正方形:显然一个正方形不管是斜的还是正的,它所占的网格中的空间一定是一个正的正方形,不妨称为该正方形的框架。于是我们可以枚举这个正方形的框架的边长,然后枚举偏离多少格即可。       至少有1个坏点:我们枚举坏点,然后同样枚举包含这个坏点的正方形的框架,那么这个坏点在框架上的

2016-05-23 13:01:34 1851

原创 bzoj 2805: [Ctsc2012]Circuit 物理

物理太差被虐了/(ㄒoㄒ)/~~        首先将电阻看成1欧不影响答案吧。。        考虑将一个点x的电势Ux,它父亲y的电势Uy,考虑将Ux用aUy+b的形式来表示,这样就可以利用树高为50的条件O(H)查询修改了。        对于任意一对点(x,y),考虑y->x的电流为(Uy-Ux+E)/R,忽略单位的话在数值上可以看成Uy-Ux+E。其中E为y->x的路上的

2016-05-23 10:46:48 957

原创 bzoj 4589: Hard Nim 异或规则下的多项式乘法

定义(a$b)i = Σaj * bi^j ,那么题目相当于求A^N的第0项,其中Ai=[i为质数且i       显然我们可以用快速幂+分治乘做到N^1.59logN,光荣TLE。       和普通多项式乘法一样,我们寻找一种变换trans(a),使得trans(a$b)=trans(a)*trans(b),这里有(X*Y)i=Xi*Yi。只要能O(NlogN)转化和复原就能解决这个问

2016-05-17 16:19:05 2287 4

原创 bzoj 3214: [Zjoi2013]丽洁体 贪心&动态规划

显然两端的字符串要贪心找对吧,中间的那一段考虑类似于dp的方法。显然中间的需要找到最小的r-l,满足[l,r]中包含了给定的第二个串,然后我们中间的一位一位枚举,得到f[i]表示给定第二个串的前i位都满足的当前在中间段的最右处,然后令g[i]表示前i位满足且第i位最右的答案,然后用g[len S2]更新答案。AC代码如下:#include#include#include#define

2016-05-17 07:59:20 1903

空空如也

空空如也

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

TA关注的人

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