自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分享

http://mp.weixin.qq.com/s/HoTmzQLB299ICem1WS0f4Ahttp://mp.weixin.qq.com/s/ERfP6LmK8GBZoVc-Wj5Izg

2017-11-27 09:06:29 495

原创 POJ2823 Sliding Window

深夜A题,单调队列。以前看过学长的博客,但是没写过,这次总算是写了一次,省赛前找下手感。单调队列就是~~队列里面都是单调的,那么找最值就很简单了~~每次向队列里面插入数据,这里注意插入的要是数值的下标,看插在哪里能让队列里面的数值保持单调,因为是找最大值或者最小值,所以从后向前扫比较好。对于本题,因为是每K个数字里面的最值,所以要保持队列里面所记录的下标之差在K范围内。#i

2013-10-11 02:32:22 767

原创 2013regional长沙赛区网赛E题--Travel by Bike

题意:从一个星期的某一天开始行走,工作日行走八个小时,周末行走四个小时,现给出总路程和行走速率,问走完这段路程是在星期几。题解:为了方便计算,把所有的开始的那一天推移到星期一,即在总时间上加上要往前推的时间,然后直接模拟就可以了。#include#include#include#include#include#includeusing namespace std;int

2013-09-23 13:52:49 921

原创 HDOJ4749 Parade Show

题意:给一个串,再一个模式串,问串中有多少个子串和模式串的的规律相同,即相邻的相等大于小于~~如果找到了,那么用过的就不能再用了。题解:直接最朴素的匹配就可以了。#include#include#include#includeusing namespace std;int n,m,k;int a[100010],b[100010];int find(int x){

2013-09-22 22:00:30 859

原创 hdoj4750 Count The Pairs

把边和询问都按权值排序,然后反过来做,每次找一条最小的边,如果边的两点不在同一个集合,那么他们之间能产生的不能给出的方案数就是集合元素个数之积,然后把这两个集合合并。对于每个询问,把总的方案数减去比它小的不能给出的方案数之和就可以了。#include#include#include#include#include#include#includeusing na

2013-09-21 18:15:03 855

原创 HDOJ4751 Divide Groups 模拟

倒过来做,把不认识的人分开就OK,直接模拟就行。#include#include#include#include#include#include#includeusing namespace std;vector map[110];vector vep[110];int sss[110][110];int n,used[110];int main(){ i

2013-09-21 17:31:50 651

原创 Caocao's Bridges HDOJ4738

题目大意:曹操建了一个作战系统,有N个岛,M座桥,如果任意两个岛能通过若干座桥相连,则作战优势很大,每座桥上有K个士兵把守,周瑜有一个炸药包,必须派不少于K个士兵去攻击,问他至少要派多少个士兵。  题解:就是求无向图的最小桥,但要注意当K=0的时候周瑜还是要派一个人去运炸药。还有就是当图本来就不连通,那么就不用派兵过去了(这里可以用并查集)。还有就是重边不会影响算法,因为只要找最小的那

2013-09-17 12:14:02 766

原创 2013 ACM/ICPC Asia Regional Online —— Warmup 1002

在根节点有一个影响范围为D的笼子,问有多少个点不在这个笼子范围内#include#include#include#include#includeusing namespace std;struct node{ int x,y,next;}edge[200010];int n,d,T,p,ans;int h[100010],used[100010],dis

2013-09-08 17:20:10 881

原创 The 2011 Nordic Collegiate Programming Contest October 01, 2011

暑期组队赛第一场,嗯,比赛的时候数据很坑爹,全部是样例,结果大家做得很开心。然后弄到数据在自己的OJ上重开,没人欢喜都是愁啊。Problem A Robots on a grid一个N*N(1这个题分两个阶段,第一阶段问用方法一有多少种方法,经验告诉我们这里用记忆化数组转移路径条数就可以做了。方程为:dp[ i ] [ j ]=dp[ i-1 ] [ j ]+dp[ i

2013-08-23 16:41:40 699

原创 HDU 1520 Anniversary party 树形DP

有一个party,为了避免不欢乐,员工与他的直接上司不能同时参加,现给你员工之间的关系图,还有每个员工参加party的欢乐值,问你得到的最大欢乐值是多少。如果贪心,那么策略是······想着想着就变成了DP,对于每一个节点,有取与不取两种状态,那么转移方程是:dp[ i ][ 0 ]=sum{ max { dp[ j ] [ 0 ] , dp [ j ] [ 1 ] } }//如果不取这个

2013-08-23 10:12:30 737

原创 COCI 2012/2013 6th round, March 9th, 2013

problem A BAKA旧式电话,摇轮子的,每个数字上都有三到四个字母(和手机上九宫格键盘一样),他每次摇一个字母的用时为字母所在键上数字加一,现在给定一个大写英文字符串,问你摇完要多久。模拟就好了,注意7和9上有四个字母~~problem B SUME给你一个矩阵,和一个位置数列a,左斜对角线上的数为0,其余S[i,j]=a[i]+a[j],已知矩阵,求数列。先求

2013-08-20 17:36:00 1344

原创 Codeforces Round #192 (Div. 2)

据说这是水题~~三点二十做到四点四十水了三个题,后面的题目真长!A。Cakeministor一个N*M的蛋糕,里面有几个毒草莓,现在这个人一下可以吃一行或者一列,但是不能吃到毒草莓,问最多可以吃掉多少格子的蛋糕。只要算出有多少行和列是没有毒草莓的,若分别为A,B,那么答案就是A*M+B*N-A*B。B。Road Construction有N个城市,彼此之间都没有道路,现

2013-08-02 18:18:24 712

原创 HUST2012校赛,USC2013新队员训练第二场

由于前天熬夜,昨天开赛前两个小时没点动静,吐槽下题目,真长!Problem A. Triangles给你N个点M条边(N首先,若点A,B,C共线,AB,BC有边,那么AC也为有边,我们要把这些情况都预处理掉。因为最多200个点,这里可以用到floyd思想,枚举中间点K,看I,J,K是否满足情况,满足连上IJ边。接下来就好做了,直接枚举三个点看是否能构成三角形~~#inclu

2013-07-10 13:07:10 917 2

原创 树状数组,HDOJ2494

Ping pong几个打乒乓球的汉子住在一条直线上,他们每个人都有一个rank值,现在他们要比赛,就得选一个人当裁判,裁判只能住在比赛两个人的房子之间,而且rank值也必须在比赛两个人之间。现在问一共能打多少场比赛~~直观就是枚举裁判的位置,那么ans=∑(L(i)*R(i)+(i-(L(i))*(N-i-1-(R(i)))))。也就是左边比他低的乘以右边比他高的  和

2013-07-08 16:06:19 731

原创 武汉大学第六届Eming杯程序设计竞赛初赛

昨天水了一下初赛题,感觉还不错。1.Eming直接做就可以了~~ a__b=a_b/ab; a=ab+a__b; a/=2; b=ab-a;2.Arithmetic Progression求最长的连续等差数列~~扫一遍~~注意差为0的情况(其实没必要,但是有学弟wa了无数次)3.A Easy Puz有一个棋盘,最大6x6,

2013-07-08 15:29:17 1263

原创 Codeforces Round #191 (Div. 2)

知道有比赛,可是忘记报名了,坑啊好吧,就三题会做327A Flipping Games给定一由0、1组成的串,改变某个区间所有元素的状态(0→1、1→0),要求使改变后的元素含1最多,并输出1的个数:考预处理的吧,用两个数组分别记录到从 0 到 i 这个位置,一共有多少个0或者1,那么区间 i ~ j 之间1的个数就是 is1[ j ] - is1[ i - 1]。#inclu

2013-07-06 19:13:49 696

原创 湘潭赛的一些感想

一开始看了A题,就说这题不是贪心!然后文东码了H题,超时,我一看觉得离散化过头了,改后,一血;然后码了I题,码的时候想到了几种情况,可是码了之后忘记了,没测,交,WA,然后他们看了一看,改,A了;然后我继续A题,想写DP,但是有点怕,用DFS,感觉有点超时,重码BFS,做标记,算一下点数,感觉会爆栈,就决定还是DP,可是状态转移方程居然写错了,而且只是写反了,下标记录的答案,这样对应起来就

2013-05-11 21:16:34 1380 2

原创 HDOJ1003 考前水一水

#include#include#include#includeusing namespace std;int main(){ int tt,t,n,num,i,j,k,l,r,tl; scanf("%d",&t); tt=t; while (t--) { k=-1000;j=0;l=r=0;tl=0; s

2013-05-09 21:23:48 816

原创 随笔

突然觉得好累,虽然什么都没做;突然觉得好迷茫,虽然目标还在前方。        感觉自己弱爆了,感觉自己水爆了,感觉自己已经不认识自己,看不到前面的路,在退缩,在懦弱,在逃避。        今天码了一下字典树,回忆了一下AC自动机,昨天回忆了下网络流还有费用流,感觉图论还是弱爆了,围观了妹子还有黑妹的博客,好多~~发奋搞啊

2013-05-07 20:42:37 508

原创 ZZ的搬砖难题 ACMORE1059 存边的网络流模版

#include#include#include#include#include#include#include#includeusing namespace std;struct node{ int y,v,nexts,re;}ed[500];map mymap;int h[500],i,j,k,s,e,x,y,v,n,pre[300],ans,p,visi

2013-05-06 15:43:05 738

原创 阅读理解题,各种字典序,字符串和字符数组库函数

给定N个int24的正整数,求出所有能组成直角三角形的组合,并按组合后形成的字符串输出。sprintf(字符数组,“输出模式”,对应的内容);字符数组转换成字符串#include #include using namespace std;int main(){ char a[10]="aasdbbbba"; string s(&a[0],&a[strlen(a)]); c

2013-04-21 21:10:57 775

原创 POJ1699 校赛D题

嗯,看到就想到爆搜,但是我没参加~悲剧~在POJ上过了,uscOJ上却TLE,嗯,我会尝试更高端的方法。爆搜很简单,用DFS写出全排列,再将串的位置一一对应就A了,代码如下#include#include#include#includeusing namespace std;int t,n,ans,istrue[11],p[11],cmp[11][11];char a[11

2013-04-17 16:35:48 1113

原创 HDOJ 4293暨The 37th ACM/ICPC Asia Regional ChengDu Site Online Contest - F Groups

题目大意:有N个人,分成若干个group,然后这些人站成一排(同一个group的人站在一起),依次反馈信息:在自己这个group前面有ai人,之后有bi人,但是有人撒谎,求最大的真话数量。DP,dp[j]表示到第j个人的最多真话数。代码如下(还可以优化)#include#include#include#includeusing namespace std;int dp[5

2012-09-18 10:58:57 1087

原创 POJ1511 SPFA模版 用边存的最短路

题意:给定一个有向图,求往返的最小距离。很简单,正向求一次最短路,再反向求一次最短路,结果相加就好了。但是题目给定的数据比较大,有1000000个点,用点存边肯定要爆内存,所以要以边存点。嗯,下面开始上代码了:#include#includeusing namespace std;const int maxn=1000005,inf=1000000005;struct

2012-09-01 20:11:45 543

原创 poj1066滑雪

好了,指直接上代码#include#includeint n,m,mx;int map[101][101],a[101][101]; bool istrue(int i,int j){ return (i>=0)&&(j>=0)&&(i<n)&&(j<m); }int maxs(int i,int j){ if (i>=j) return i

2012-09-01 19:46:03 932

原创 poj1201差分约束

题目大意:给定一些区间[ai,bi]以及一个数量wi,找到一个几何V,要求区间[ai,bi]在集合V中至少包含wi个元素,求V中至少应包含多少个元素。题解:嗯,这个题目只要把每个区间的长度求出来然后减去重合的部分就可以了,但是今天学习了一种新的算法——拆分约束,解题很方便。给定dis[i]表示第I个点到源点的距离,根据已知条件有:dis[ai]dis[i+1]dis[i

2012-09-01 14:41:02 414

原创 HDU3809 迭代法结二元二次方程组

题目的意思就是:x1=x-sqrt(y);y1=y-sqrt(x);这里我学会了用迭代法结二元二次方程组。易知:x>x1&&y>y1 ,又把方程换成x=x1+sqrt(y),y=y1+sqrt(x);我们可以付初值x=x1,y=y1,将2试带入1试得x=x1+sqrt(y1+sqrt(x1));显然求得的x是要小于解值的,然后依次进行迭代,使得得到的x和y越来越接近解值,控制好精度

2012-08-23 17:03:06 2105 1

转载 扩展欧几里德算法 线性同余方程 中国剩余定理

转自七*-*七~ 如果我忘记数论一直是比较弱的,于是 用扩展欧几里德算法求解线性同余方程。其实这类问题应该是比较基础也比较简单的,但我由于几乎没有一点数论的基础,所以还是难为了我不久,等现在彻底搞明白以后再看真的觉得是挺简单的,有关这类问题的题目也不是很多,我就做了3个。下面把这类问题的资料整理一下,方便以后再看。欧几里德算法  欧几里德算法又称辗转相除法,用于

2012-08-22 15:55:26 1598

原创 HDOJ2830 Matrix Swapping II超水的一道不知道什么题

今天段学妹说在做DP题,然后我就问她讨了一道题,结果,这哪里是DP了···题目大意:给定一个矩阵,矩阵由0、1构成,现可以移动任意列,问移动后所构成矩阵中由1构成的子矩阵的最大的面积。分析:首先我们来看一个简单的例子:110101010001那么经过移动后,形成了011100110001由1构成的自矩阵的最大面积显然就是4了,如上图红色部分那么,

2012-08-02 18:41:11 2345

原创 HDOJ2222 AC自动机模版题

刚接触AC自动机的时候觉得应该不难,可是~可是到了后来才觉得亚历山大,在这里,先捡最简单的来说吧,对AC自动机的认识及AC自动机模版。首先,我们需要对trie树和KMP有初步了解,那么我们先回顾一下:KMP         首先这个匹配算法,主要思想就是要充分利用上一次的匹配结果,找到匹配失败时,模式串可以向前移动的最大距离。这个最大距离,必须要保证不会错过可能的匹配位置,因此这个最大

2012-07-27 17:53:44 3608

原创 找毒酒

上次从家里回学校,火车上一码农问的一个问题题目描述如下:某产酒公司生产了一批酒,1000瓶,但是不法分子在某瓶酒里下了毒,喝了毒酒的东西将在2小时候毒发,所幸酒还没有封装,于是,管理员弄来了十只小白鼠试酒,你知道他会如何找到那瓶毒酒吗?我当时就想啊想,最简单的方法应该就是一只老鼠尝试100瓶了,但这太耗时间,于是,我就没说出来,然后就到学校了。现在给出我的想法:既然只有一瓶毒酒

2012-07-26 16:16:54 2220

原创 POJ2516--Minimum Cost最小费用最大流

前向看了下网络流,再听了vivi的讲解,对最小费用最大流也算有了初步的了解。可以理解为:在一个网络流中,每条边都有一定的代价,可正可负可为零。怎样才能在耗费代价最小的情况下求出最大流?有两种求法。一种途径是先用最大流算法算出最大流,然后根据边费用,检查是否有可能在流量平衡的前提下通过调整边流量,使总费用得以减少?只要有这个可能,就进行这样的调整。调整后,得到一个新的最大流。另一种是先通

2012-07-06 12:38:33 903

原创 POJ2449A*求K短路

暑期培训,胖子交给我一个艰巨的任务,就是讲A*,自己弄懂还是蛮简单,但是要讲出去谈何容易,无奈我只能再拿起来重新阅读。一、现实举例1.我们玩游戏时,经常点击一下鼠标,游戏角色就会自动按照最短路径走向目的地,这需要搜索最短路径,这都是游戏程序帮我们完成了。游戏程序是如何做到高效完成的呢?2.“众里寻他千百度,暮然回首,那人却在灯火阑珊处”,要是我们一开始便知道伊人会在灯火阑珊处,便开始寻

2012-07-03 18:08:58 1188 5

原创 POJ1157解题报告

题目大意:F行V列数,每行取一个数--a[i][j],并且j为递增,问这样取才能使得这F个数之和最大。题意分析:很容易就想到了DP:状态转移方程为f[i][j]=max{f[i-1][j-1]+a[i][j],a[i][j-1]}。代码:#includeusing namespace std;int main(){ int f,v,m=-51; in

2012-02-23 19:55:17 548

空空如也

空空如也

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

TA关注的人

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