
ACM个人赛练习题
清泠,
慢慢成长的小白白,
展开
-
CodeForces - 246
题目链接这次个人赛的C和D直接给我干懵了,C的话是自己的逻辑混乱了,D是自己写的时候又忘记了以前犯的错误了C题解题思路C题直接枚举,不过有一定的技巧与思维首先我们想,他一般情况下是先枚举一个数字的,然后2个…那么这里有个坑就是,如果有 1 2 3 ,那么我们先枚举完3了,然后再枚举 1 2,那么他的和相同了,肯定是不行的,所以我们这里想从大到小枚举还有一种方法就是,我们保证一些数...原创 2020-04-21 16:35:19 · 207 阅读 · 0 评论 -
Codeforces Round #461 (Div. 2) BCD
题目链接 B题 解题思路:给予一个 n ,求三个数a ,b ,c , 范围 1 <= a <= b <=c <= n,要求 a , b ,c能组成三角形,并且 a ^ b ^ c == 0,求符合要去的个数。循环查找 a , b 然后求出 c , c = a ^ b,然后判断 c 是否符合要求。 代码:#include <iostre...原创 2020-02-03 18:04:55 · 139 阅读 · 0 评论 -
Parencoding 波吉-1068 (模拟)
题目链接题目大意:给予n,输入n个数,代表‘)’前有几个’(’ ,让求一个’)'中包含多少()。eg:(())第一个)中包含一个(),第二个右括号 包含2个()解题思路:首先根据给定的)前有多少(求出字符串。然后根据字符串求出每个)中括号包含多少()。(代码注释)代码:#include <iostream>#include <cstdio>#i...原创 2020-01-22 12:51:39 · 254 阅读 · 0 评论 -
Y2K Accounting Bug POJ - 2586
题目链接题目大意:给予 s,d ,s 是盈利,d是亏损,一年12月中,每连续5个月都是亏损的,问盈利的最大数额是多少,没有盈利则输出Deficit。解题思路:(刚开始比较懵,想怎么都是亏损的,最后想明白了)连续5个月亏损,先用0表示亏损,1表示盈利。111101111011 如果 连续5个月中 4* s <= d 那么就是这种情况,一定把盈利放在前面,这样可以达到最大盈利(可以...原创 2020-01-22 12:23:10 · 124 阅读 · 0 评论 -
Radar Installation POJ - 1328 (区间贪心)
题目链接题目大意:给予n个点坐标,求在x轴上,确定一些点,让以这些点为圆心,r为半径的圆包含这些坐标。解题思路:刚开始的想法是直接想左右的点的范围,但是想到一些错误例子,所以改掉了,后来先计算n个点所能达到x轴的范围,存左端点和右端点的位置,然后再排序进行处理。处理的过程很简单,如果不包含(下个点的左端点比当前点的右端点大),那么++,否则,求当前右端点的的值(min(当前右端点的值,...原创 2020-01-22 10:39:04 · 145 阅读 · 0 评论 -
The Pilots Brothers' refrigerator POJ - 2965(枚举)
题目链接题目大意:给予4 * 4 的棋盘,上面含有 + 和 - ,目的使棋盘全部变为 - ,求最小的步数。(改变当前位置的符号,该符号所在的行和列都会进行改变)解题思路:(自己一开始没想明白,看了题解才想明白)要改变当前位置的字符,就要改变他的行和列的全部字符,这样才能使当前位置的字符,而使其他位置的字符不变。(可以画图或者思考一下)因此,我们需要计算棋盘的位置的字符改变的次数即可,...原创 2020-01-22 10:13:31 · 176 阅读 · 0 评论 -
Moving Tables POJ - 1083(空间)
题目链接题目大意:移动桌子,每个桌子移动的时间为10分钟,只要房号所在区间不相互影响,则可以同时移动,求所需最短的时间。解题思路:顺序大小不确定,将小的放在前面。.给予房间号,但是房间所占有的连廊区间是成对的。(1,2房间占用的就为区间1)因此房间所属的区间为[ l+1 >>1 , r+1>>1 ]。因此只要求区间中经过次数最多的地点,就是所需要的最大次数。...原创 2020-01-21 23:17:46 · 130 阅读 · 0 评论 -
Tree Recovery POJ - 2255(前序、中序、后序遍历)
题目链接 题目大意:给予前序中序遍历,求后序遍历解题思路:板子题(可以手写下大体思路)前序遍历(根、左、右)中序遍历(左、根、右)根据前序遍历找到中点然后根据中点将中序遍历划分为左右两部分,递归下去。代码:#include<stdio.h>#include<string.h>#define N 30using namespace std;...原创 2020-01-21 23:07:18 · 142 阅读 · 0 评论 -
Integer Inquiry POJ - 1503(大数相加)
题目链接题目大意:给一些大数,求合解题思路:将数字当做字符串一位一位求。(注意细节就OK,相当于模板题)代码:#include <iostream>#include <cstdio>using namespace std;int ans[105];int main(){ string St; while(cin>>S...原创 2020-01-21 21:56:11 · 151 阅读 · 0 评论 -
Ancient Cipher POJ - 2159
题目链接题目大意:给2个字符串,求是否为经过加密的密码。(后面是字符串是否为前面字符串的加密结果)解题思路:加密过程只有两种:全部字符进行平移将字符的位置进行替换因此:只要判断字符的数量与之前的数量是否相符就行(相符不要求相应的字母相同,而是要求个数相同就行)eg:原本有A 2个,B 2 个, C 1个加密后 D 2个 E 2个,F 1个。(数量相对应)#inc...原创 2020-01-21 21:29:01 · 152 阅读 · 0 评论 -
I love you —— 牛客网
题目链接题目大意:解题思路简单的dp思想,分别将iloveyou存入到dp[i]中。dp[i] 的值是根据dp[ i - 1] 得来。例子: ab 二个字母 abb在 b 的前面有 2 个 a , 现在b出现,那么组成a b的就为dp[1] = dp [ 1 ] (dp[ 1 ] 可能之前存在值)+ dp [ 0 ] (dp[0] 为 2)若是 abab 则可以组成ab的为 ...原创 2020-01-21 10:17:58 · 329 阅读 · 0 评论 -
Game —— 牛客网
题目链接题目大意解题思路分解因数最终达到不可分解,因此成为求一个数的质因数的数量。谁无法分解谁就输,因此,推出存在偶数个那么Johnson输,反之,Nancy输。AC代码#include <iostream>#include <cstdio>using namespace std;int Prime_num(int n){ int num ...原创 2020-01-21 09:54:03 · 287 阅读 · 0 评论 -
Channels —— 牛客网
题目链接题目解题思路利用前缀和思想: 利用 Sr - S (l - 1) 即可(Si 为 i 时刻之前可以观看的时间)错误:原本直接计算两者之间的差值,但是会出现一些偏差,效果不好,最后采用前缀和思想AC代码#include <iostream>#include <cstdio>#include <cmath>#include <...原创 2020-01-21 09:33:58 · 289 阅读 · 0 评论 -
C - Beautiful Regional Contest —— Codeforces Round #604 (Div. 2)
DescriptionSo the Beautiful Regional Contest (BeRC) has come to an end! n students took part in the contest. The final standings are already known: the participant in the i-th place solved pi pr...原创 2019-12-08 19:46:59 · 268 阅读 · 0 评论 -
Disk Scheduling —— 牛客网
题目链接:链接题目大意:输入n, m,在n个数中,找到 与 m 最近的数相减,再以被减数为基础,继续进行上述操作 。求最终差的和。(距离相同先与左边的相减)解题思路:首先输入,进行排序,然后找到m的相对位置,然后对m左右数值进行差运算比较大小,如果 ‘左’ > 右,变换右,反之,变换左。依次类推,最终找出差的和。代码:#include <iostream>#i...原创 2019-12-07 23:37:12 · 778 阅读 · 0 评论 -
CodeForces - 918C The Monster(思维)
题目链接:链接题目大意:给一个括号和问号组成的序列,问号可以视为左括号或右括号。问共有多少个合法(左右括号匹配的区间数(不是方案数)。解题思路:从左到右记录左括号,右括号,问号的数量,先把问号看作右括号,如果左括号加问号都小于右括号,就退出;如果不退出,但是左右括号数量不相等,并且存在问号,就把问号转成左括号;代码:#include <iostream>#includ...原创 2019-12-04 10:38:08 · 155 阅读 · 0 评论 -
Hashing Trees CodeForces - 902C
题目链接: 题目链接题目大意:给出一颗n层的树。以及从第0层开始给出每层的节点个数。求是否存在同构,若存在输出“ambiguous”和 2 个可以同构的树,如果不可以输出“perfect”。思路:判断该节点的该层是否大于 1,如果大于 1 ,那么如果下层节点为1,那么继续寻找,如果不大于1,那么将点进行分离。①.将点都给右边的节点。②.将一个点给左边的节点,其余的都给右边的节点。代...原创 2019-12-02 15:49:22 · 229 阅读 · 0 评论 -
蕊蕊乘车去上学 —— 牛客
题目:题目大意:蕊蕊去坐车,公交车每班的发车时间不确定,50%的概率间隔 a 分钟,50%概率间隔 b 分钟,每次到站的车辆会接走所有的乘客。(每分钟都有一名乘客来等车),问乘客排队的平均队伍长度。思路:根据概率论知识,在很多种情况下,间隔a时间发车和间隔b时间发车是等可能的,并且并列。(如抛硬币的正反面)因此可以假设为a、b连续,所以 a 时间间隔占总比的 a / (a + b),b时...原创 2019-12-02 15:26:22 · 242 阅读 · 0 评论 -
B. Jamie and Binary Sequence (changed after round)
Codeforces Round #457 (Div. 2)题目链接:http://codeforces.com/problemset/problem/916/B题目大意:输入n,k 两个数字(n的大小1e18)。现在要把n分解成k个2的幂次相加,输出k个幂次,要求满足其中最高幂次要最小,并且满足字典序最大。字典序最大:第一个样例。答案为:(3,3,2,1,0)如果为:(3,3,2...原创 2019-11-27 11:15:36 · 187 阅读 · 0 评论 -
牛客网 「土」秘法地震 (DP)
题目:解题思路:给出n,m,k 三个数。输入n * m 的矩阵,矩阵元素为 0 或 1。我们只需要计算有多少k * k 的元素不全为0的矩阵即可。采用DP思想。eg: 4 4 24 * 4 的方格,然后求出有多少 k * k 大小的矩阵中元素全部为 0。首先输入每个单元格中的元素值,然后我们采用递归来计算当前位置的左上方全部元素的和。for (int i = 1; i &...原创 2019-11-25 00:56:11 · 324 阅读 · 2 评论 -
E1. Send Boxes to Alice (Easy Version) Codeforces Round #601 (Div. 2)
题目:题目大意:输入n,代表n个盒子,然后输入n个数字ai, ai为0或1, 1代表有糖果,0代表没有糖果。糖果可以进行左右移动(每次移动一格且消耗一点体力),移动后每个格子的糖果数必须为k的倍数。求话费的最短时间。解题思路:要求为k的倍数,可以先求糖果的总数,然后进行循环判断,要为k的倍数,那么就要使 num % k == 0。(num 为糖果总数)因此,要话费时间最短,所以 k 个...原创 2019-11-24 19:17:24 · 171 阅读 · 0 评论 -
Christmas Spruce CodeForces - 913B
题目:题目大意:一个”树“,有一个根为 1 ,他的子节点中,如果没有子代且有父代的顶点称为叶子。如果每棵非叶顶点至少有3个叶子节点,我们称其为云杉,得到一棵有根的树,检查他是否为云杉。解题思路:输入n,剩下n-1行是每个位置的根节点,开vector数组,对于相同的根节点存到一起,然后判断节点是否存在>=3个叶子节点(若为空就是叶子节点),如果存在,输出Yes,否则输出No。...原创 2019-11-24 15:00:31 · 156 阅读 · 0 评论 -
B - New Year's Eve CodeForces - 912B
题目:题目大意:给两个数 n 和 k ,在 1 — n 中找出K个数,使他们的异或值最大。eg: 1 和 2 的异或值 3 ( 01 ^ 10 => 11 )思路:当 k == 1 时,取 n。其余的,值都为 2 ^ (m+1) - 1 。(m为n的范围内,2进制所能达到的最高阶数)eg : n 为 9,n 不 为 1, 那么最高阶为 3 , 2 ^ 4 - 1。代...原创 2019-11-19 00:08:38 · 215 阅读 · 0 评论 -
FZU - 2111 Min Number
题目:题目大意:给出一个数字T,代表有几个样例。下面T行每行包含两个数,第一个代表待变换的数字 n ,第二个代表改变的次数m。找出不超过 m 次的变换后n的最小值(第一位不能为0)。变换:n中的数字2个位置的变换。eg: 2314 将 1 位和 3位进行一次换位 ,变成 1324。解题思路:开始觉得暴力超时,结果看M相对较小,可以暴力求解。从第一位开始变换,找出之后位置上最小...原创 2019-11-18 16:40:15 · 140 阅读 · 0 评论 -
FZU - 2102 Solve equation
题目:题目大意:给出方程A = k*B + d, 题目给出A、B、C的值,C是进制数。求出最大的 k ,输出(k,d)的值。进制数:以C进制进行运算。eg: 12 的 8 进制为 1 * 8 + 2 = 10解题思路:首先给出A,B的字符串,根据C算出他们各自的值,然后进行运算即可。代码:#include <iostream>#include <cstdio&g...原创 2019-11-18 16:21:16 · 135 阅读 · 0 评论