摘要:
题目链接:CodeForces 1983C【Have Your Cake and Eat It Too】 思路 先向上取整计算出tot/3,然后依次枚举abc三个数组取区间的前后顺序,对于每个顺序依次从前往后枚举,直到取得的区间数字之和大于等于tot/3,就对下一个数组进行枚举,直到所有数组都满足取 阅读全文
摘要:
题目链接:CodeForces 1983A【Array Divisibility】 思路 按规律可得,当a[i] = i时满足题目要求。 代码 #include <functional> #include <iostream> #include <algorithm> #include <queue 阅读全文
摘要:
题目链接:CodeForces 1983B【Corner Twist】 思路 可以发现操作一次,被操作位置的对应每一横行和每一纵行的加减数都是3,所以可以根据网格a和b的横纵状态确定是否通过操作使得网格a到达网格b。 代码 #include <bits/stdc++.h> using namespa 阅读全文
摘要:
题目链接:CodeForces 1992A【Only Pluses】 思路 代码 #include <functional> #include <iostream> #include <algorithm> #include <queue> using namespace std; #define 阅读全文
摘要:
题目链接:CodeForces 1992B【Angry Monk】 思路 找出最大的元素,除了最大的元素的所有元素全部分成1,所以操作次数为sum(数组) - max(数组) - (数组元素个数 - 1),然后全部合并到最大的元素上,操作次数为sum(数组) - max(数组),所以最最后得到sum 阅读全文
摘要:
题目链接:CodeForces 1992D【Test of Love】 思路 从起点开始起跳,找出下一个木头的位置,若与当前位置的距离小于等于m,则可以直接跳过去,否则判断当前位置与下一个木头之间有没有鳄鱼,有鳄鱼则不能到达对岸,否则继续查找下一个木头,直到对岸。 代码 #include <func 阅读全文
摘要:
题目链接:CodeForces 1992C【Gorilla and Permutation】 思路 根据题意只需要使得f(x)尽可能大,g(x)尽可能小,所以需要将大于等于n的数组排在序列的前端,且按由大到小的顺序依次排列,将小于等于m的数字排在序列的后端,且按从小到大的顺序依次排列。 代码 #in 阅读全文
摘要:
题目链接:CodeForces 1992E 【Novice's Mistake】 思路 直接对a,b枚举肯定会超时,因为a,b数数字过大,但是通过结果a * n - b可以发现结果最多为6位数,所以对结果的位数进行枚举,然后枚举a,来计算出b并判断是否符合题意,同时需要去掉b不符合题目的范围的情况。 阅读全文
摘要:
题目链接:POJ 2524 【Ubiquitous Religions】 思路 经典并查集模板,求集合个数。 代码 #include <iostream> using namespace std; #define ll long long const int N = 5e5 + 10; int fa 阅读全文
摘要:
题目链接:HDU 1789【Doing Homework again】 思路 将输入的数据按分数排序,先将分数高的作业完成,但是考虑到一天只能写一种作业,为了不造成冲突需要预留头几天,从每种作业的结束期限开始安排,因为所有作业都可以在头几天完成,若从第1天开始安排则可能出现如下的情况:作业分数--9 阅读全文
摘要:
POJ 1089【Intervals】题目链接: 思路 我们可以使得每个雷达尽可能多的覆盖小岛。我们可以枚举每个小岛求出能覆盖当前小岛的雷达放置位置的区间,从左往右看,为了尽量不浪费雷达的检测范围,对于第一个雷达,为了不浪费雷达的检测范围,所以将第一个雷达放在第一个放置区间的最右端,然后依次枚举下一 阅读全文