ACM
Rutifrl
这个作者很懒,什么都没留下…
展开
-
PAT 反转链表
题目描述给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转。例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4;如果K为4,则输出应该为4→3→2→1→5→6,即最后不到K个元素不反转。输入描述:每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址、结点总个数正整数N(5)、以及正整数K(<=N),即要求反转的子链结原创 2017-03-07 14:50:14 · 511 阅读 · 0 评论 -
C - Alyona and Mex CF682B
从小到大排序,每个数可以变成比它自身小的数,找出没有出现在数列中的第一个数#include#includeusing namespace std;int a[100002];int main(){ int n; scanf("%d",&n); for(int i=0;i { scanf("%d",&a[i])原创 2016-07-07 23:57:17 · 392 阅读 · 0 评论 -
CF682A B - Alyona and Numbers
在1到n和1到m中各取一个数能被5整除,求有多少对最大不超过n+m的数列举5的倍数,分3种情况,设min=n和m中较小那个,max类似1aI>b,a-i+b+1对#includeint main(){ int n,m; long long ans=0; scanf("%d%d",&n,&m); int a=n i原创 2016-07-07 23:52:16 · 432 阅读 · 0 评论 -
CF686B A - Little Robber Girl's Zoo
模拟冒泡排序#include#includeusing namespace std;int a[102];int main(){ int n; scanf("%d",&n); for(int i=1;i scanf("%d",&a[i]); for(int i=n;i>=1;i--) {原创 2016-07-07 23:46:22 · 534 阅读 · 0 评论 -
蓝桥杯 查找整数
问题描述给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。输入格式第一行包含一个整数n。第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。第三行包含一个整数a,为待查找的数。输出格式如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。样例输入61 9 4 8 3 9原创 2017-02-25 15:42:13 · 277 阅读 · 0 评论 -
天梯赛练习 红色警报(并查集)
战争中保持各个城市间的连通性非常重要。本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报。注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个城市并不改变其他城市之间的连通性,则不要发出警报。输入格式:输入在第一行给出两个整数N(0 N \le≤ 500)和M(\le≤ 5000),分别为城市个数(于是默认城市从0到N-1编号)和原创 2017-02-25 15:23:56 · 347 阅读 · 0 评论 -
天梯赛练习 列车调度
火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格式:输原创 2017-02-25 15:21:51 · 1816 阅读 · 0 评论 -
华为2017 校园招聘
第一题,给一个整数,求这个整数加1后的整数。整数多长不知,用string#include #include #include #include #include using namespace std;int main(){ string str; cin >> str; int len = str.length(); int flag = 0;原创 2017-03-03 21:23:31 · 509 阅读 · 0 评论 -
蓝桥杯 操作格子(线段树更新,求和,求最大)
问题描述有n个格子,从左到右放成一排,编号为1-n。共有m次操作,有3种操作类型:1.修改一个格子的权值,2.求连续一段格子权值和,3.求连续一段格子的最大值。对于每个2、3操作输出你所求出的结果。输入格式第一行2个整数n,m。接下来一行n个整数表示n个格子的初始权值。接下来m行,每行3个整数p,x,y,p表示操作类型,p=1时表示修改格子x的权值为原创 2017-02-24 19:38:47 · 330 阅读 · 0 评论 -
蓝桥杯 报时助手
问题描述 给定当前的时间,请用英文的读法将它读出来。 时间用时h和分m表示,在英文的读法中,读一个时间的方法是: 如果m为0,则将时读出来,然后加上“o'clock”,如3:00读作“three o'clock”。 如果m不为0,则将时读出来,然后将分读出来,如5:30读作“five thirty”。 时和分的读法使用的是英文数字的读法,其中0~20读作: 0:原创 2017-02-24 16:55:45 · 288 阅读 · 0 评论 -
蓝桥杯 摆动序列(df
问题描述 如果一个序列满足下面的性质,我们就将它称为摆动序列: 1. 序列中的所有数都是不大于k的正整数; 2. 序列中至少有两个数。 3. 序列中的数两两不相等; 4. 如果第i – 1个数比第i – 2个数大,则第i个数比第i – 2个数小;如果第i – 1个数比第i – 2个数小,则第i个数比第i – 2个数大。 比如,当k = 3时,有下面几个这样的序列原创 2017-02-24 16:25:03 · 446 阅读 · 0 评论 -
天梯赛练习 正整数A+B
题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。输入格式:输入在一行给出A和B,其间以空格分开。问题是A和B不一定是满足要求的正整数,有时候可能是超出范围的数字、负数、带小数点的实数、甚至是一堆乱码。注意:我们把输入中出现的第1个空格认为是A和B的分隔。题目保证至少存在一个空格,并且B不是一个空字符原创 2017-02-24 15:14:20 · 1105 阅读 · 0 评论 -
天梯赛练习 天梯地图(SPFA)
本题要求你实现一个天梯赛专属在线地图,队员输入自己学校所在地和赛场地点后,该地图应该推荐两条路线:一条是最快到达路线;一条是最短距离的路线。题目保证对任意的查询请求,地图上都至少存在一条可达路线。输入格式:输入在第一行给出两个正整数N(2 \le≤ N \le≤ 500)和M,分别为地图中所有标记地点的个数和连接地点的道路条数。随后M行,每行按如下格式给出一条道路的信息:V1原创 2017-02-24 15:12:46 · 1190 阅读 · 0 评论 -
带分数
问题描述100 可以表示为带分数的形式:100 = 3 + 69258 / 714。还可以表示为:100 = 82 + 3546 / 197。注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。类似这样的带分数,100 有 11 种表示法。输入格式从标准输入读入一个正整数N (N输出格式程序输出该数字用数码1~9不重复不遗漏地组成带分数表原创 2017-03-02 20:32:05 · 393 阅读 · 0 评论 -
D - Joty and Chocolate
#include#includeusing namespace std;#define ll long longll gcd(ll a,ll b){ ll c; while(b) { c=a%b; a=b; b=c; } return a;}ll lcm(ll a,l原创 2016-07-07 23:58:41 · 623 阅读 · 0 评论 -
E - Pyramid of Glasses
模拟#include#includedouble dp[15][15];int n,t;void solve(){ dp[1][1]+=1; for(int i=1;i { for(int j=1;j { if(dp[i][j] continue;原创 2016-07-07 23:59:59 · 410 阅读 · 0 评论 -
PAT 数字黑洞
题目描述给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。例如,我们从6767开始,将得到7766 - 6677 = 10899810 - 0189 = 96219621 -原创 2017-03-07 14:49:04 · 621 阅读 · 0 评论 -
PAT 月饼
题目描述月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有3种月饼,其库存量分别为18、15、10万吨,总售价分别为75、72、45亿元。如果市场的最大需求量只有20万吨,那么我们最大收益策略应该是卖原创 2017-03-07 14:47:25 · 360 阅读 · 0 评论 -
PAT A除以B
题目描述本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。输入描述:输入在1行中依次给出A和B,中间以1空格分隔。输出描述:在1行中依次输出Q和R,中间以1空格分隔。输入例子:123456789050987654321 7输出例子:1763668原创 2017-03-07 14:45:57 · 665 阅读 · 0 评论 -
福尔摩斯的约会
题目描述大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很 快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是 第4个字母'D',代表星期四;第2对相同的字符是'E',那是第5个英文字母,原创 2017-03-07 14:44:17 · 268 阅读 · 0 评论 -
PAT 数素数
题目描述令Pi表示第i个素数。现任给两个正整数M 输入描述:输入在一行中给出M和N,其间以空格分隔。输出描述:输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。输入例子:5 27输出例子:11 13 17 19 23 29 31 37 41 4347 53 59 61 67 71 73原创 2017-03-07 14:42:50 · 431 阅读 · 0 评论 -
PAT 数字分类
题目描述给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;A3 = 被5除后余2的数字的个数;A4 = 被5除后余3的数字的平均数,精确到小数点后1位;A5 = 被5除后余4的数字中最大数字。输入描述:每个输入包原创 2017-03-07 14:41:00 · 308 阅读 · 0 评论 -
PAT A+B和C
题目描述给定区间[-2的31次方, 2的31次方]内的3个整数A、B和C,请判断A+B是否大于C。输入描述:输入第1行给出正整数T(输出描述:对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case #X: false”,其中X是测试用例的编号(从1开始)。输入例子:41 2 32 3 4214原创 2017-03-07 14:39:41 · 353 阅读 · 0 评论 -
传纸条(dp)
问题描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标(1,1),小轩坐在矩阵的右下角,坐标(m,n)。从小渊传到小轩的纸条只可以向下或者向右传递,从小轩传给原创 2017-02-27 15:52:37 · 412 阅读 · 0 评论 -
天梯赛练习 是否完全二叉搜索树
*有两种方法:第一种是把结点存在(1 内有某个点未被赋值那么就不是完全二叉树第二种是模拟建树,给每个结点编号,如果编号大于n则不是二叉树(可以在建树的时候就编号,也可以层序遍历的时候编号)第二种比第一种快,内存少*/#include #include #include using namespace std;const int N = (1 << 20) + 1原创 2017-02-27 13:56:00 · 319 阅读 · 0 评论 -
天梯赛练习 愿天下有情人都是失散多年的兄妹
深搜,第一个人的五代以内的祖先不在第二个人的五代以内的祖先,输出yes,控制一下dfs的层数#include #include #include using namespace std;const int maxn = 100005;int father[maxn],mother[maxn],sex[maxn];bool vis[maxn],flag;void dfs(int no原创 2017-02-26 22:07:38 · 423 阅读 · 0 评论 -
传球游戏(dp)
问题描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。 游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没传出去的那个同学就是败者,要给大家表演一个节目。 聪明的小蛮提出一个有趣的问题:有多原创 2017-02-25 16:44:21 · 491 阅读 · 0 评论 -
NOIP 乘积最大(dp)
问题描述 今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目: 设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。原创 2017-02-25 16:24:03 · 501 阅读 · 0 评论 -
CodeForces 618A Slime Combining
模拟,数组初始化为0,每次+1,如果后两位一样,a[j-1]+1,a[j]=0,j变成j-1#include#includeint a[100002];int main(){ int n,i,j,m; scanf("%d",&n); m=n; for(i=0;i for(i=1,j=0;i { a[j原创 2016-07-08 20:36:57 · 326 阅读 · 0 评论 -
CCCC练习 5-11玩转二叉树
给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(\le≤30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树反转后的层序遍历的序列。原创 2017-02-23 15:02:38 · 989 阅读 · 0 评论 -
CCCC练习 5-10树的遍历
给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数NN(\le 30≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:72 3 1原创 2017-02-23 15:00:17 · 345 阅读 · 0 评论 -
hiho1263 奖券兑换
多重背包,记下拥有同一券同一价值的奖品的数量,当做同一类 P,W代码原创 2016-09-03 21:26:01 · 368 阅读 · 0 评论 -
hiho1366 逆序单词
//set的成员函数find利用红黑树实现,logn复杂度#include#include#include#includeusing namespace std;set s;string inverse(string str){ int len=str.size(); int mid=len/2; for(int i=0,j=len-1原创 2016-09-03 16:24:15 · 217 阅读 · 0 评论 -
hiho Total Highway Distance
//dfs#include#include#include#include#includeusing namespace std;#define N 100010int head[N];//head[i]代表起点是i的边的编号int cnt;//代表边的编号int n,m;char opt[10];long long ans=0;int size原创 2016-09-03 15:48:37 · 238 阅读 · 0 评论 -
hiho1232 Couple Trees
//倍增,二分,LCA,LCA是指树中两个点的最小公共祖先//f[u][i]表示u节点的第2^i个父节点,倍增求,排好序,剔除重复部分//求u和v的LCA时,如果u>v,那么先求u的父节点中大于等于v的第一个节点,付给u,如果u==v,退出,反之亦然#include#include#includeusing namespace std;#define maxn 1000原创 2016-09-03 09:12:55 · 289 阅读 · 0 评论 -
2016微软招聘 Fibonacci
/*dp给定一个序列,有多少个子序列是Fibonacci数列的前缀dp[i][j]表示到第i个数为止长度为j的Fibonacci数列的前缀有多少如果a[i]=1,dp[i][1]=dp[i-1][1]+1,dp[i][2]=dp[i-1][1]+dp[i-1][2]其它情况,dp[i][j]=dp[i-1][j]+dp[i-1][j-1]*/#include#inc原创 2016-09-02 19:50:43 · 256 阅读 · 0 评论 -
状态压缩 HOJ2662
//状态压缩,dp[i][j][x]表示第i行为止放了j个棋子,状态为x的方法数//因为n*m#include#include#includeusing namespace std;#define LL long longLL n,m,k,dp[81][21][1LL mark[1//记录x状态下1的数目LL num(LL x){ LL原创 2016-09-02 19:33:29 · 396 阅读 · 0 评论 -
poj3468 线段树+延迟更新
所谓延迟更新就是,如果某个区间在你要找的那个区间内的话,更新这个节点,同时记下这个节点更新了多少,下次如果要用到这个节点的字节点,再把更新了多少传给字节点#include#include#includeusing namespace std;#define LL long long#define lson l,m,rt#define rson m+1,r,rt原创 2016-09-12 22:18:33 · 327 阅读 · 0 评论 -
hiho1362 修补木桶
/*最小值最大用二分,枚举起点,二分答案,判断答案是否合法因为L*M答案可以更大一点,如果比M大,答案小一点*/#include#includeusing namespace std;#define maxn 100000000int a[1010];int L,M,N;int bsol(int x){ int num=0;原创 2016-09-03 20:41:44 · 436 阅读 · 0 评论 -
poj3565 ants
/*km 最小权匹配 左边是树,右边是蚂蚁*/#include#include#include#include#includeusing namespace std;#define MAXN 105#define inf 999999999.0#define eps 1e-5struct Point{ double x; do原创 2016-09-09 17:57:16 · 285 阅读 · 0 评论