自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 bzoj1150: [CTSC2007]数据备份Backup

细节好多优先队列+贪心#include#include#include#include#include#includeusing namespace std;struct data{ int l,r,v,ni,w; bool operator <(const data &m)const{ return v>m.v;

2017-04-18 22:08:11 230

原创 bzoj1145: [CTSC2008]图腾totem

数学+树状数组真是一道神题233果然符合CTSC用来练习思维与树状数组很不错的膜拜hzwer.com/5357.html#include#include#include#include#include#includeusing namespace std;int op[200005];int a[200005];int lc[200005],rc[200005];

2017-04-18 22:00:32 387

原创 bzoj2876: [Noi2012]骑行川藏

二分+拉格朗日乘数法膜拜http://blog.csdn.net/popoqqq/article/details/42366599今天算是学习了一波,太神了还有就是精度有毒233#include#include#include#include#include#include#define INF 1000000009using namespace std;int n

2017-04-18 21:54:58 341

原创 bzoj3956:Count

ST表+单调栈先用单调栈O(n)处理出以每个点为左、右端点的所有的点对组数。然后考虑询问区间,用ST表找出区间内最大点的位置,所有好的点对都不会跨越这个点然后以最大点左边所有点为左端点的好的点对+以最大点右边所有点为右端点的好的点对便是最后的答案(前缀和处理)今天算是复习 学习了ST表和单调栈挺好的一道题#include#include#include#inclu

2017-04-18 21:10:31 300

原创 POJ2373:Dividing the Path

单调队列优化dp经过推到若设dp[i]为[0…i]最少所需喷头数则当i不是牛所喜欢的地方时dp[i]=min(dp[k])+1;其中(i-2*b当i是牛所喜欢的地方时dp[i]=INF;然后最小的dp[k]用单调队列找就好注意i为奇数时没有考虑的必要#include#include#include#include#include#define INF 100000

2017-04-17 22:20:48 438

原创 bzoj2330: [SCOI2011]糖果

差分约束今天又一次学习了一波,才发现这种问题可以转化为图论,好神奇233再次证明我好菜2333#include#include#include#include#include#includeusing namespace std;int n,k;int f[100005];int to[300005],_next[300005],head[100005],v[30

2017-04-17 22:14:38 202

原创 bzoj3894: 文理分科

最小割……我觉得重点是建图,细节挺多(表示很菜的我WA了好多次)理解后其实并不难#include#include#include#include#include#include#define INF 1000000009using namespace std;queueque;int n,m;int S,T;int art[105][105],science[105]

2017-04-17 22:00:16 205

原创 bzoj1857: [Scoi2010]传送带

看到这题第一感觉暴力呀233然后就乱搞水过了(数据太水?)我的做法是将AB,CD分别等分为512段这样AB,CD上各有513个顶点,不妨设AB上的顶点为E,CD上的顶点为F通过数学容易得到A到D的最短时间移动路径是AE-EF-FD,那枚举E在AB上那513个顶点位置,枚举F在CD上那513个顶点位置,其中满足AE/P+FD/Q+EF/R最小的E,F点时路径移动时间最短,此时

2017-04-17 11:36:23 296

原创 poj3352-Road Construction

无向图双连通分量昨天刚复习了一波割顶和桥,tarjin相关,今天就写了一道233算是比较简单的题大概直接将目前图中所以边-双连通都缩为一个点,然后得到一颗树设这颗树上所有出度为1的点的个数为sum容易证明答案为(sum+1)/2#include#include#include#include#include#include#include#include

2017-04-14 22:11:52 213

原创 SPOJDISUBSTR - Distinct Substrings

听说是后缀数组结果被我暴力给过了233我的做法是分别将字符的所有后缀加如建一颗trie树,然后树的结点数就是答案由于不卡空间(1536MB)但卡时间(0.159s)所以可以多开数组避免清空数组时的时间浪费然后就暴力(0.06s)水了过去233#include#include#include#include#include#include#include#inclu

2017-04-14 22:02:23 205

原创 uoj#9【UTR #1】vfk的数据

水题注意字符串中的数字长度可以爆longlong所以直接比字符串就好#include#include#include#include#include#include#include#includeusing namespace std;int n;struct data{ char s[105]; char c[105];

2017-04-14 00:10:32 357

原创 bzoj3671: [Noi2014]随机数生成器

贪心乱搞?读完题感觉题面好神奇然后现暴力求出格子排列然后从1开始枚举看能否加入,若可以把其左下右上所有点标记(用bool否则超空间)每个点至多被记一次,所以复杂度为O(n*m),常数好像较大#include#include#include#include#include#include#includeusing namespace std;bool st;in

2017-04-14 00:05:19 241

原创 bzoj4805: 欧拉函数求和

杜教筛  网上讲解可多了,我也刚学会?好像是会了就不讲了#include#include#include#include#include#include#includeusing namespace std;long long phi[160005];mapG;int n;void lcr(){ int i,k,l,j,t; long l

2017-04-13 23:57:18 260

原创 bzoj3450: Tyvj1952 Easy

令dp[i][0]表示点击i次且第i次失败的期望,dp[i][1]表示点击i次且第i次成功的期望通过观察分析找规律发现当i-1次一定失败时dp[i][0]=dp[i-1][0];dp[i][1]=dp[i-1][0]+1;当i-1次一定成功时dp[i][0]=dp[i-1][1];dp[i][1]=2*dp[i-1][1]+2-dp[i-1][0];当i-1次一定随机时dp[i][

2017-04-13 23:51:08 210

原创 bzoj1821: [JSOI2010]Group 部落划分 Group

并查集水题假设刚开始一个点就是一个部落然后合并两两距离最小且不是同一部落,直到k然后就完啦#include#include#include#include#include#include#include#includeusing namespace std;int n,k;int xi[1005],yi[1005];int fa[1005];struct d

2017-04-13 23:45:43 216

原创 bzoj1307: 玩具

好像数据很弱……但我还是写了个较正常的乱搞解法?考虑到这联续k个必定为1……k排列才能更新答案我们先找到所有1的位置,然后在一个1到左右两个1的整个区间里扫描判重统计,具体参照代码大概就是O(nlogn)的时间复杂度了#include#include#include#include#include#include#include#include#include

2017-04-13 23:38:03 402

原创 bzoj3244: [Noi2013]树的计数

神题……不到1k的noiT2重在理解dfs,bfs性质#include#include#include#include#include#includeusing namespace std;int n;double ans=2;int dx[200005],pos[200005],lc[200005],rc[200005];int cnt=0;int main(){

2017-04-13 23:33:16 219

原创 bzoj2823: [AHOI2012]信号塔

随机增量算法可以去参照下面网站中的论文https://wenku.baidu.com/view/a836ff44ad02de80d4d84095.html#include#include#include#include#include#includeusing namespace std;int n;double x[1000005],y[1000005];d

2017-04-13 23:26:47 277

原创 bzoj2431: [HAOI2009]逆序对数列

dp……令b[i][j]表示n=i,k=j时的答案;则b[1][0]=1;b[2][0]=1;b[2][1]=1;b[3][0]=1;b[3][1]=2;b[3][2]=2;b[3][3]=1;我们观察发现(至少我是观察)b[i][j]=b[i-1][j-i+1]+……b[i-1][j];注意j-i+1(i-1)*(i-2)/2,即j大于i-1层逆序对最大值时,b[i][j]=b[

2017-04-13 22:51:40 249

原创 bzoj1090 [SCOI2003]字符串折叠

dp……#include#include#include#include#include#includeusing namespace std;int n;char s[105];int dp[105][105];bool lcr(int l,int r,int c){ int i,j,k; for(i=0;i<=c-1;i++) fo

2017-04-13 22:44:29 210

原创 bzoj4722: 由乃

我们发现(看题解)知道当区间长度大于13时一定可以找到两集合总贡献值相等证明:长度为L的区间共有2^L种集合,而每个元素贡献小于等于1000(v13时2^L>1000*L于是乎解决了第一个问题,接下来发现区间问题,那就线段树搞一搞233……可修改操作是将原数立方,那单重不断标记叠加就炸了……由于v很小,然后发现倍增可以很好解决这一问题,设f[a][b]数组,表示a的2^b次立方

2017-03-30 13:30:37 296

原创 bzoj3172: [Tjoi2013]单词

第一篇竟然是这个题233终于决定把写过的题整理一下了233刚开始看不懂题呀,然后在Discuss 中才明白题,我语文好菜。转译下大概就是每一个词,在所有n个词中总共出现多少次。……词原来可以重复,贡献了2次WA我的做法:AC自动机胡写,,,大概在建trie树时记录一下每个节点出现次数,并记录一下重复单词。然后算fail,然后枚举所有节点让其查找fail直至根,每当遇到单

2017-03-30 11:09:55 401

空空如也

空空如也

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

TA关注的人

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