
ACM个人赛练习题
清泠,
慢慢成长的小白白,
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CodeForces - 246
题目链接 这次个人赛的C和D直接给我干懵了,C的话是自己的逻辑混乱了,D是自己写的时候又忘记了以前犯的错误了 C题解题思路 C题直接枚举,不过有一定的技巧与思维 首先我们想,他一般情况下是先枚举一个数字的,然后2个… 那么这里有个坑就是,如果有 1 2 3 ,那么我们先枚举完3了,然后再枚举 1 2,那么他的和相同了,肯定是不行的,所以我们这里想从大到小枚举 还有一种方法就是,我们保证一些数...原创 2020-04-21 16:35:19 · 223 阅读 · 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 · 151 阅读 · 0 评论 -
Parencoding 波吉-1068 (模拟)
题目链接 题目大意: 给予n,输入n个数,代表‘)’前有几个’(’ ,让求一个’)'中包含多少()。 eg: (())第一个)中包含一个(),第二个右括号 包含2个() 解题思路: 首先根据给定的)前有多少(求出字符串。 然后根据字符串求出每个)中括号包含多少()。 (代码注释) 代码: #include <iostream> #include <cstdio> #i...原创 2020-01-22 12:51:39 · 271 阅读 · 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 · 132 阅读 · 0 评论 -
Radar Installation POJ - 1328 (区间贪心)
题目链接 题目大意: 给予n个点坐标,求在x轴上,确定一些点,让以这些点为圆心,r为半径的圆包含这些坐标。 解题思路: 刚开始的想法是直接想左右的点的范围,但是想到一些错误例子,所以改掉了,后来先计算n个点所能达到x轴的范围,存左端点和右端点的位置,然后再排序进行处理。 处理的过程很简单,如果不包含(下个点的左端点比当前点的右端点大),那么++,否则,求当前右端点的的值(min(当前右端点的值,...原创 2020-01-22 10:39:04 · 153 阅读 · 0 评论 -
The Pilots Brothers' refrigerator POJ - 2965(枚举)
题目链接 题目大意: 给予4 * 4 的棋盘,上面含有 + 和 - ,目的使棋盘全部变为 - ,求最小的步数。 (改变当前位置的符号,该符号所在的行和列都会进行改变) 解题思路: (自己一开始没想明白,看了题解才想明白) 要改变当前位置的字符,就要改变他的行和列的全部字符,这样才能使当前位置的字符,而使其他位置的字符不变。(可以画图或者思考一下) 因此,我们需要计算棋盘的位置的字符改变的次数即可,...原创 2020-01-22 10:13:31 · 186 阅读 · 0 评论 -
Moving Tables POJ - 1083(空间)
题目链接 题目大意: 移动桌子,每个桌子移动的时间为10分钟,只要房号所在区间不相互影响,则可以同时移动,求所需最短的时间。 解题思路: 顺序大小不确定,将小的放在前面。 .给予房间号,但是房间所占有的连廊区间是成对的。(1,2房间占用的就为区间1)因此房间所属的区间为[ l+1 >>1 , r+1>>1 ]。因此只要求区间中经过次数最多的地点,就是所需要的最大次数。...原创 2020-01-21 23:17:46 · 137 阅读 · 0 评论 -
Tree Recovery POJ - 2255(前序、中序、后序遍历)
题目链接 题目大意: 给予前序中序遍历,求后序遍历 解题思路: 板子题 (可以手写下大体思路) 前序遍历(根、左、右) 中序遍历(左、根、右) 根据前序遍历找到中点 然后根据中点将中序遍历划分为左右两部分,递归下去。 代码: #include<stdio.h> #include<string.h> #define N 30 using namespace std; ...原创 2020-01-21 23:07:18 · 190 阅读 · 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 · 162 阅读 · 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 · 171 阅读 · 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 · 345 阅读 · 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 · 301 阅读 · 0 评论 -
Channels —— 牛客网
题目链接 题目 解题思路 利用前缀和思想: 利用 Sr - S (l - 1) 即可 (Si 为 i 时刻之前可以观看的时间) 错误:原本直接计算两者之间的差值,但是会出现一些偏差,效果不好,最后采用前缀和思想 AC代码 #include <iostream> #include <cstdio> #include <cmath> #include <...原创 2020-01-21 09:33:58 · 303 阅读 · 0 评论 -
C - Beautiful Regional Contest —— Codeforces Round #604 (Div. 2)
Description So 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 · 288 阅读 · 0 评论 -
Disk Scheduling —— 牛客网
题目链接: 链接 题目大意: 输入n, m,在n个数中,找到 与 m 最近的数相减,再以被减数为基础,继续进行上述操作 。求最终差的和。 (距离相同先与左边的相减) 解题思路: 首先输入,进行排序,然后找到m的相对位置,然后对m左右数值进行差运算比较大小,如果 ‘左’ > 右,变换右,反之,变换左。依次类推,最终找出差的和。 代码: #include <iostream> #i...原创 2019-12-07 23:37:12 · 808 阅读 · 0 评论 -
CodeForces - 918C The Monster(思维)
题目链接: 链接 题目大意: 给一个括号和问号组成的序列,问号可以视为左括号或右括号。问共有多少个合法(左右括号匹配的区间数(不是方案数)。 解题思路: 从左到右记录左括号,右括号,问号的数量,先把问号看作右括号,如果左括号加问号都小于右括号,就退出; 如果不退出,但是左右括号数量不相等,并且存在问号,就把问号转成左括号; 代码: #include <iostream> #includ...原创 2019-12-04 10:38:08 · 166 阅读 · 0 评论 -
Hashing Trees CodeForces - 902C
题目链接: 题目链接 题目大意: 给出一颗n层的树。以及从第0层开始给出每层的节点个数。求是否存在同构,若存在输出“ambiguous”和 2 个可以同构的树,如果不可以输出“perfect”。 思路: 判断该节点的该层是否大于 1,如果大于 1 ,那么如果下层节点为1,那么继续寻找,如果不大于1,那么将点进行分离。 ①.将点都给右边的节点。 ②.将一个点给左边的节点,其余的都给右边的节点。 代...原创 2019-12-02 15:49:22 · 249 阅读 · 0 评论 -
蕊蕊乘车去上学 —— 牛客
题目: 题目大意: 蕊蕊去坐车,公交车每班的发车时间不确定,50%的概率间隔 a 分钟,50%概率间隔 b 分钟,每次到站的车辆会接走所有的乘客。(每分钟都有一名乘客来等车),问乘客排队的平均队伍长度。 思路: 根据概率论知识,在很多种情况下,间隔a时间发车和间隔b时间发车是等可能的,并且并列。(如抛硬币的正反面)因此可以假设为a、b连续,所以 a 时间间隔占总比的 a / (a + b),b时...原创 2019-12-02 15:26:22 · 255 阅读 · 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 · 198 阅读 · 0 评论 -
牛客网 「土」秘法地震 (DP)
题目: 解题思路: 给出n,m,k 三个数。 输入n * m 的矩阵,矩阵元素为 0 或 1。 我们只需要计算有多少k * k 的元素不全为0 的矩阵即可。采用DP思想。 eg: 4 4 2 4 * 4 的方格,然后求出有多少 k * k 大小的矩阵中元素全部为 0。 首先输入每个单元格中的元素值,然后我们采用递归来计算当前位置的左上方全部元素的和。 for (int i = 1; i &...原创 2019-11-25 00:56:11 · 345 阅读 · 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 · 182 阅读 · 0 评论 -
Christmas Spruce CodeForces - 913B
题目: 题目大意: 一个”树“,有一个根为 1 ,他的子节点中,如果没有子代且有父代的顶点称为叶子。如果每棵非叶顶点至少有3个叶子节点,我们称其为云杉,得到一棵有根的树,检查他是否为云杉。 解题思路: 输入n,剩下n-1行是每个位置的根节点,开vector数组,对于相同的根节点存到一起,然后判断节点是否存在>=3个叶子节点(若为空就是叶子节点),如果存在,输出Yes,否则输出No。...原创 2019-11-24 15:00:31 · 169 阅读 · 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 · 228 阅读 · 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 · 151 阅读 · 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 · 150 阅读 · 0 评论