- 博客(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<iostream>using namespace std;int q[100005];int main(){ int n,m,k=0; cin>>n; while(n--){ cin>>m; if(!k||...
2018-10-01 19:27:57 354
原创 【模拟】矩阵连乘
UVA 442 Matrix Chain Multiplication题意:给出几个矩阵和带括号优先级的矩阵连乘,求一共计算多少个数据。题解:将已知的矩阵存成结构体,安输入顺序存入栈中,不管前括号,遇到后括号取出两个相乘,相乘后的新矩阵定义新结构体,再放回栈中。#include<string>#include<stack>#include&...
2018-07-26 20:21:39 272
原创 【欧几里得】青蛙面基
OpenJ_Bailian 1061 青蛙的约会题意:两只青蛙面基,环球跳直到跳到同一个点上,输入青蛙位置x,y,青蛙一次跳的长度m,n,环球周长l,求要跳几次。题解:得到公式(n-m)*t+l*k=(x-y) —> a*x+b*y=c,进递归最终得t*x=c,得x=c/t,判断条件c%t!=0,#include<cstdio>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<cstdio>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<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<cstdi...
2018-07-24 15:13:01 261
原创 【思维】K.Bro排序
HDU 5122 K.Bro Sorting题意:输入个无序无重复数组,选中一个数后可以和其后比他小的一串数换位置,求要换几次。题解:用s[i]储存数组,倒序遍历,在遇到1之前,所有相隔的距离都是要换的数。#include<cstdio>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<cstdio>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<cstdio>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<iostream>#include<cstring>using namespace ...
2018-07-22 21:12:39 226
原创 【模拟】有限内存的翻译
Luogu P1540 机器翻译简单模拟#include<iostream>#include<cstring>using namespace std;int main(){ int m,n,x,k=0,s[100]; memset(s,-1,sizeof(s)); cin>>m>>n; for(int i=0;...
2018-05-10 15:58:59 198
原创 【基础】多项式输出格式
Luogu P1067 多项式输出#include<iostream>using namespace std;int main(){ int s[100],n; cin>>n; for(int i=n;i>=0;i--)cin>>s[i]; bool ok=false; for(int i=n;i>=0;...
2018-05-10 15:12:27 382
原创 【模拟】铺地毯
Luogu P1003 铺地毯题意:输入各地毯i的左下角坐标x,y与长宽a,b。输入一个坐标,求该点最上面的地毯号。题解:简单模拟,但数据极大,所以要储存后倒序找该点处覆盖的最后一个地毯。#include<iostream>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<iostream>#include<cstring>using namespace std;int n,v,c[500],w[500],dp[45000];int main(){ memset(dp,0,sizeof(dp)); cin>>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<bits/stdc++.h>using namespace std;int main(){ int N,n,w[600],d[1100],m,m0; cin>&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<iostream>#...
2018-05-03 21:11:14 633
原创 【基础】丑数
题意:只包含因子2,3,5的正整数被称为丑数。#include<iostream>#include<queue>using namespace std;typedef pair<int,unsigned long long> pil;int main(){ priority_queue<pil,vector<pil>,grea...
2018-05-03 20:15:00 324
原创 【贪心】猜GPA最值
HDU 4968 Improving the GPA题意:已知各分值对应的绩点,给出n个科目的平均分ave,挑选n科的成绩求绩点可能的最大、最小值。注:该学霸的成绩都≥60且≤100;题解:找最小值从最小绩点的上限开始挑,保证剩下的不大于100;找最大值从最大绩点的下限开始挑,保证剩下的不小于60;#include<cstdio>#include<cstring>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<iostream>#include<cstring>#include<set>using namespace std...
2018-04-29 21:14:23 404
原创 【KMP】明文密文
HDU 4300 Clairewd’s message题意:(炒鸡难懂)第一行是转换表,明文abcde对应的密文;第二行是拦截下的完整的密文和不完整的明文;要求输出完整的密文明文;题解:将明文密文kmp标记,从一半后第一个开始kmp匹配(一定要从一半后不然aaa错误);记录k即为明文长度,对应输出后面的字母; #include<iostream>...
2018-04-29 21:01:47 450
原创 【基础】类
虚函数与继承:#include<bits/stdc++.h>using namespace std;class Graph{ int x;public: Graph(int a=0):x(a){} Graph(Graph& 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>max,更新最大值、起点终点,继续累加; 若sum<max,不更新,继续累加,等待后续看情况; 若sum<0,不宜继续累加,更新sum=0,更新起点终点,重新累加;#include <iostream>...
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<ci;#include <iostream>#include <cstring>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 <...
2018-04-19 22:25:26 446
原创 【DP】找连续数
HDU 5247 找连续数题意:输入数组长度n,查找次数m,输入数组。输入k,找排序后k长度的连续数的个数。题解:改变起始点i与终止点j,更新最大最小值,判断区间是否连续。 若区间差=最值差,连续; 若终止点出现过,跳出;记录后查询。#include <iostream>#include <algorithm>#include <cstring>...
2018-04-19 22:25:10 199
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人