自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 【二分】可达最大间隔

poj - 2456#include<cstdio>#include<iostream>#include<cstring>#include<queue>#include<algorithm>using namespace std;typedef long long int lld;int n,c,s[100005],a...

2019-05-21 18:31:55 205

转载 【哈夫曼】编码长度

hdu - 2527#include<cstdio>#include<iostream>#include<cstring>#include<queue>#include<algorithm>using namespace std;typedef long long int lld;int main(){ in...

2019-05-18 17:50:41 3496

原创 【暴力】回溯求无连续重复的ABC串

uva - 129#include<cstdio>#include<iostream>#include<cstring>#include<cmath>#include<algorithm>using namespace std;typedef long long int lld;int n,m,ok,cnt,s[100...

2019-05-18 01:06:23 220

转载 【基础】二分求高阶函数解

hdu - 2199谜一样的精度控制#include<cstdio>#include<iostream>#include<cstring>#include<queue>#include<algorithm>using namespace std;typedef long long int lld;double y;...

2019-05-18 01:03:39 337

转载 【暴力】abcde/fghij

UVA725 Division#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;int main(){ int n,cnt=0; while(cin>>n&&n...

2019-05-17 10:33:23 554

转载 【贪心】多线程活动时间安排

POJ 3190 Stall Reservationsn个活动,开始时间a,结束时间b,编号id。按最早开始时间排序,向线程中安排;优先队列记录各线程的最后一个活动,按最早结束时间排序。#include<cstdio>#include<algorithm>#include<queue>using namespace std;struct...

2019-05-16 21:16:22 360

转载 【贪心】熊猫洗衣服

hdu 6000 Washm件衣服,n1个洗衣机,n2个烘干机,一个机器一次处理一件,求最快完成时间。#include<cstdio>#include<algorithm>#include<queue>using namespace std;typedef long long int lld;struct node{ lld len,...

2019-05-16 21:09:27 277

原创 【升序列】列车调度

PTA列车调度求最少的非连续降序列数=求最长的非连续升序列长度#include&lt;iostream&gt;using namespace std;int q[100005];int main(){ int n,m,k=0; cin&gt;&gt;n; while(n--){ cin&gt;&gt;m; if(!k||...

2018-10-01 19:27:57 354

原创 【模拟】矩阵连乘

UVA 442 Matrix Chain Multiplication题意:给出几个矩阵和带括号优先级的矩阵连乘,求一共计算多少个数据。题解:将已知的矩阵存成结构体,安输入顺序存入栈中,不管前括号,遇到后括号取出两个相乘,相乘后的新矩阵定义新结构体,再放回栈中。#include&lt;string&gt;#include&lt;stack&gt;#include&...

2018-07-26 20:21:39 272

原创 【欧几里得】青蛙面基

OpenJ_Bailian 1061 青蛙的约会题意:两只青蛙面基,环球跳直到跳到同一个点上,输入青蛙位置x,y,青蛙一次跳的长度m,n,环球周长l,求要跳几次。题解:得到公式(n-m)*t+l*k=(x-y) —&gt; a*x+b*y=c,进递归最终得t*x=c,得x=c/t,判断条件c%t!=0,#include&lt;cstdio&gt;using na...

2018-07-25 20:49:35 238 1

原创 【欧拉函数】原点能看见几个点

POJ 3090 Visible Lattice Points题意:输入范围n,在原点能看见n*n范围内多少个不被挡住的点。题解:由题意(ka,kb)会被(a,b)挡住,所以要求n*n内互质的点。#include&lt;cstdio&gt;using namespace std;const int N=1000;int s[N+5];int main(){ ...

2018-07-25 17:58:49 380

原创 【欧几里得】

HDU 2669 Romantic题意:输入两个非负整数a,b,在ax+by=1中,求x为非负整数、y为整数的解,选择x最小的输出,无解输出sorry。题解:欧几里得裸板。t为a,b的最大公约数,最大公约数大于1无解。有解时,当x&lt;0,x+=b,获得下一个另y为整数的x。在gcd中(a,b互质情况),先进递归化简a,b,到1x+0y=1形式,得一个整数解x...

2018-07-25 15:55:52 230

原创 【传递闭包】比较牛的等级

POJ 3660 Cow Contest题意:输入牛的数量n,他们的编号和等级都是1到n,输入比较次数m,和m个比较结果a b,表示a战胜b。求能确定几个牛的等级。题解:用d[i][j]表示传递闭包,d[i][j]=1为i能战胜j,d[i][j]=-1为i不可能战胜j,d[i][j]=0为不清楚结果。如果d[i]整行非零,即与其他n-1头牛比较结果都已知,即可以确定等级...

2018-07-24 23:34:01 237

原创 【思维】0,1,2最小串

CodeForces 1009B Minimum Ternary String题意:输入一串数,0与1可以互换,1与2可以互换,将这串数换成等长最小的数。题解:1可以和另外两种数都换位,记录1的个数,有2就将1全部放在第一个2之前,以求2尽量靠后,2与0相对位置不变;没有2就将1放在末尾,让所有0靠前;注意可以将201换成120。#include&lt;cstdi...

2018-07-24 15:13:01 261

原创 【思维】K.Bro排序

HDU 5122 K.Bro Sorting题意:输入个无序无重复数组,选中一个数后可以和其后比他小的一串数换位置,求要换几次。题解:用s[i]储存数组,倒序遍历,在遇到1之前,所有相隔的距离都是要换的数。#include&lt;cstdio&gt;using namespace std;const int N=1000000+5;int s[N];int mai...

2018-07-24 15:06:53 233

原创 【斐波那契】偷木棍破坏三角形

HDU 5914 Triangle题意:输入n表示某人有1,2,3,4……n,一共n根木棍,求偷走几根木棍后某人无法将剩余的木棍组成三角形。题解:由于长度越大越容易组成三角,先用s[i]标记可以留下那些长度的木棍。贪心思想,留下的长度尽可能小,为后面的留空间:1,2,3,x,5,x,x,8,x,x,x,x,13……大概可以看出是个斐波那契。再将标记的s[i]顺序累加...

2018-07-24 15:00:52 688

原创 【思维】不同的和

URAL 2065 Different Sums题意:输入数组s长度n,数组中至少有k种不同的数,求让数组s各相连子串和种数最少的排列之一。题解:从0开始用,0,1,-1,2,-2……最后用0补齐。s没赋0,wa到死。#include&lt;cstdio&gt;using namespace std;const int N=500+5;int main(){ ...

2018-07-24 14:53:51 209

原创 【欧拉函数】至少需要几个数对

UVA 10820 Send a Table题意:输入一个数n,组成它的所有二元有序数对,任意(ka,kb)可由(a,b)求得,问最少要知道多少个数对。题解:欧拉函数题,求没有公因子的对子,即与当前列数互质的数目。画一个方格,求第i列从(1,i)到(i-1,i)中需要知道的数对数目a[i],继而得到从(1,1)扩展到第i圈的需要的总数目b[i]。最后分别直接查询。...

2018-07-24 00:10:06 216

原创 【双DP】唱最多的歌

UVA 12563 Jin Ge Jin Qu hao题意:已知想唱的歌曲n和剩余时间t,和每首歌的时间a[i],以及一首能唱很久的jingejin,求最多能唱歌数和唱歌时间。规定每首歌开唱后不被打断,开唱后必须唱完,且只能唱一次。样例举例了最好每次留一分钟去开始jingejin。题解:使用两个背包,一个b[i]存唱的时间,一个c[i]存唱的数量。注意1时间范围是骗人的...

2018-07-23 21:56:29 209

原创 【快速幂】几种分组方法

UVA 11609 分组题意:已知一队的人数n,从n中任取一部分人组队并选一队长,问有几种组队方法。注:可以队长一人为一队,不同的队长算不同的队伍。题解:计算公式 = 1*n选1+2*n选2+…… = n * 2的(n-1)次方。直接算WA,循环TLE,人生第一个快速幂。#include&lt;cstdio&gt;using namespace std;int m...

2018-07-23 15:45:32 427

原创 【最短路】

HDU 2544 最短路题意:输入路口(点)数n,路(线)数m,已知连通路a[i],b[i],权重c[i],求指定点1到点n的权重。题解:将原有线的权重正反记录,将经过点i的点全部连通并记录新线的权重,可以得到所有点与点之间的权重。#include&lt;iostream&gt;#include&lt;cstring&gt;using namespace ...

2018-07-22 21:12:39 226

原创 【模拟】有限内存的翻译

Luogu P1540 机器翻译简单模拟#include&lt;iostream&gt;#include&lt;cstring&gt;using namespace std;int main(){ int m,n,x,k=0,s[100]; memset(s,-1,sizeof(s)); cin&gt;&gt;m&gt;&gt;n; for(int i=0;...

2018-05-10 15:58:59 198

原创 【基础】多项式输出格式

Luogu P1067 多项式输出#include&lt;iostream&gt;using namespace std;int main(){ int s[100],n; cin&gt;&gt;n; for(int i=n;i&gt;=0;i--)cin&gt;&gt;s[i]; bool ok=false; for(int i=n;i&gt;=0;...

2018-05-10 15:12:27 382

原创 【模拟】铺地毯

Luogu P1003 铺地毯题意:输入各地毯i的左下角坐标x,y与长宽a,b。输入一个坐标,求该点最上面的地毯号。题解:简单模拟,但数据极大,所以要储存后倒序找该点处覆盖的最后一个地毯。#include&lt;iostream&gt;using namespace std;const int N=10000;int x[N],y[N],a[N],b[N];int main(){ ...

2018-05-09 22:51:23 233

原创 【DP】吃草数量

Luogu P2639 Bessie的体重问题题意:见题。题解:简单dp。#include&lt;iostream&gt;#include&lt;cstring&gt;using namespace std;int n,v,c[500],w[500],dp[45000];int main(){ memset(dp,0,sizeof(dp)); cin&gt;&gt;v&g...

2018-05-09 20:33:09 159

原创 【DP】

Luogu P2871 手链题意:有n件物品和容量为V的背包,输入各物品的重量c[i],价值w[i]。求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。题解:i遍历每个物品,j遍历当前可拿总重量。(一维数组j倒序遍历,否则改变上次的值。)    若除本次外已拿的最大价值dp[j-ci]加上本次的价值比上次就拿够当前总重的价值大,取当前物品更新最大值;    否则不取,保持...

2018-05-09 19:12:44 167

原创 【模拟】拿书顺序

codeforces 500C New Year Book Reading题意:简单模拟,书数N,拿书次数n,各书重量w,以及拿书次序。题解:根据第一次拿各书的顺序放入栈中就OK。#include&lt;bits/stdc++.h&gt;using namespace std;int main(){ int N,n,w[600],d[1100],m,m0; cin&gt;&g...

2018-05-09 15:04:31 237

原创 【贪心】对子顺子

HDU 6188 Duizi and Shunzi 题意:给出一堆牌,求最多能组成多少顺子{1,2,3}和对子{1,1},不能重复利用。注:牌面值最大可达10^6。题解:前两张优先取对子,因为前面没牌跟他们组顺子,然后遍历面值i;    如果i-1与i-2有剩下的,优先取顺子,因为只需要一张i牌就能ans++;    然后再判断能否取两张的对子;#include&lt;iostream&gt;#...

2018-05-03 21:11:14 633

原创 【基础】丑数

题意:只包含因子2,3,5的正整数被称为丑数。#include&lt;iostream&gt;#include&lt;queue&gt;using namespace std;typedef pair&lt;int,unsigned long long&gt; pil;int main(){ priority_queue&lt;pil,vector&lt;pil&gt;,grea...

2018-05-03 20:15:00 324

原创 【贪心】猜GPA最值

HDU 4968 Improving the GPA题意:已知各分值对应的绩点,给出n个科目的平均分ave,挑选n科的成绩求绩点可能的最大、最小值。注:该学霸的成绩都≥60且≤100;题解:找最小值从最小绩点的上限开始挑,保证剩下的不大于100;找最大值从最大绩点的下限开始挑,保证剩下的不小于60;#include&lt;cstdio&gt;#include&lt;cstring&gt;usi...

2018-05-01 21:36:29 197

原创 【数组】炮台打怪

HDU 4970 Killing Monsters题意:输入M个炮台的攻击范围ab和攻击力c,N个怪物的血量d和坐标x。所有怪物从x往n走,一个位置受一次攻击,求到n还活着的怪有几个。题解:标记攻击范围起始点a处c,终止点b处后一个-c;(遍历增加会超时!)    从1到n遍历一遍得到每个点会受到的攻击;    从n到1遍历一遍得到每个点到n所需的血量;然后直接查询比较血量够不够。#include...

2018-05-01 20:55:13 184

原创 【模拟】小动物吃蛋糕

HDU 4302 Holedox Eating题意:一个小动物从x=0去吃蛋糕,0 x处出蛋糕,1去吃最近的;注:没有蛋糕原地不动;两边距离相等时按原方向继续走;题解:把有蛋糕的点存起来,每次取左右最近的点比较,到下一个点。#include&lt;iostream&gt;#include&lt;cstring&gt;#include&lt;set&gt;using namespace std...

2018-04-29 21:14:23 404

原创 【KMP】明文密文

HDU 4300 Clairewd’s message题意:(炒鸡难懂)第一行是转换表,明文abcde对应的密文;第二行是拦截下的完整的密文和不完整的明文;要求输出完整的密文明文;题解:将明文密文kmp标记,从一半后第一个开始kmp匹配(一定要从一半后不然aaa错误);记录k即为明文长度,对应输出后面的字母; #include&lt;iostream&gt;...

2018-04-29 21:01:47 450

原创 【基础】类

虚函数与继承:#include&lt;bits/stdc++.h&gt;using namespace std;class Graph{    int x;public:    Graph(int a=0):x(a){}    Graph(Graph&amp; a):x(a.x){}    virtual ~Graph(){}//    virtual double getArea...

2018-04-27 07:54:49 234

原创 【?】交谊舞

Vijos 1062 交谊舞题意:n个人站一排,任意一对舞伴(男左女右)中间可能没人,也可能有好几对舞伴。输入每个女生左边一共几个男生,输出该女生的舞伴是她左边第几个男生。题解:用p记录一共n对舞伴的位置(男生序号),输入女生左边男生数m后    若p[m]=0,该女生左边紧挨男生,第m个男生即为她的舞伴;    若p[m]=1,该女生左边有成对的舞伴,连续向左找到第一个没有舞伴的男生;然后p[m...

2018-04-26 19:21:16 571 1

原创 【DP】Max Sum

HDU 1003 MaxSum题意:输入一个数组,找到一段相加和最大的区间,输出最大和以及起点终点。题解:从k点开始往sum上逐个累加,当    若sum&gt;max,更新最大值、起点终点,继续累加;    若sum&lt;max,不更新,继续累加,等待后续看情况;    若sum&lt;0,不宜继续累加,更新sum=0,更新起点终点,重新累加;#include &lt;iostream&gt;...

2018-04-26 14:20:58 244

原创 【巴什博弈】乘数游戏

POJ 2505 A multiplication game题意:从1开始,选择2-9中任意数乘上去,先达到m的赢。题解:可以得到必胜态:    (1,9] 状态A,先手赢    (9,9x2] 状态B,后手赢此后,基数乘一个数相当于m除一个数。    (9x2,9x2x9] 状态C,先手可以找到2-9中的一个数,将m变为状态B,等待胜利    (9x2x9,9...

2018-04-22 00:12:40 220

原创 【DP】硬币和数

POJ 1742 Coins题意:有n种硬币,求在m内能组成的价值数目。题解:i遍历硬币,j遍历价值,p标记已计数,t记录当前硬币使用个数,判断    当前价值未被计数,即p=0;    当前价值-当前硬币值可以被组成,即p-pr=1;    当前硬币数还够,即tr&lt;ci;#include &lt;iostream&gt;#include &lt;cstring&gt;using nam...

2018-04-20 18:04:11 297

原创 【规律博弈】两数相减

HDU 1525 Euclid's Game题意:用小数b去减大数a,次数不限,不能减为负,先出0的赢。题解:首先,a能整除b,则当前先手赢。其次,b比2a大,则当前先手赢。        若a%b,b不可赢,当前先手操作为a%b,b;        若可赢,当前先手操作为b+a%b,b;否则,继续相减。注:ok记录每轮当前先手。#include &lt;...

2018-04-19 22:25:26 446

原创 【DP】找连续数

HDU 5247 找连续数题意:输入数组长度n,查找次数m,输入数组。输入k,找排序后k长度的连续数的个数。题解:改变起始点i与终止点j,更新最大最小值,判断区间是否连续。    若区间差=最值差,连续;    若终止点出现过,跳出;记录后查询。#include &lt;iostream&gt;#include &lt;algorithm&gt;#include &lt;cstring&gt;...

2018-04-19 22:25:10 199

空空如也

空空如也

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

TA关注的人

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