- 博客(8)
- 收藏
- 关注
原创 hncpc2021(A~G、J)
略。 模拟即可,不多说。B、方格填数(思维) 略 (中文不用解释吧)。 很显然,填入一个数后,左上的数必须小于这个数,右下的数必须大于这个数,直接判断是否合法就行了。C、Average of Two Numbers(STL) 有 n 个不同的数,找出有多少个数可以作为这些数中任意两个其他数字的平均值。 直接用set即可,具体看代码。D、Sum Them(逆元) 给你 n、m,要你求这个式子的值。 发现在 i 增加时,后面的式子只改变了一个值,我们只需在增加
2022-07-15 17:25:40 1322 2
原创 Acwing第 49 场周赛 题解
A、组队直接模拟即可int main(){ ios::sync_with_stdio(0),cin.tie(0); cout << fixed << setprecision(7); int n,k,ans=0; cin >> n >> k; for(int i=1;i<=n;i++){ int x; cin >> x; if(x+k<=5)
2022-04-30 20:51:30 319
原创 Codeforces Global Round 20 E
题目大意:此题为交互题,有n个字符串,你可以进行询问,输出一个宽度,在保证在一行内,每两个字符串至少有一个空格的前提下,会告诉你最少有多少行,如果宽度过小,会返回0,要求出最小宽度和高度的乘积,最多进行n+30次询问。分析:交互题大部分都是二分,题目说了n+30次,显然我们可以用30次二分来求出这些字符串刚好全部放到一行的宽度,然后枚举放 2行 … n行,每次取最大值,答案即可求出。(询问后面必须用 endl)代码:void slove(){ int n; cin >>
2022-04-24 17:30:02 372
原创 AtCoder Beginner Contest 249题解(E,F)
AtCoder Beginner Contest 249题解(E,F)E - RLE题目大意:有一个长度为 N 的只含有小写字母字符串 S ,将S中连续相同的字母用计数法表示,如 aaa -> a3,aaabbbcc -> a3b3c2。现在要求用计数法表示后长度严格小于原来长度的 S 数量,要求对P取模。分析:考虑动态规划: 设 f[ i ] [ j ]为 长度为 i 的字符串 用计数法表示后长度为 j 的数量 。 sum[ i ] [ j ] 为法 f[ i ] [
2022-04-24 17:17:21 2167
原创 Acwing 第48场周赛题解
Acwing 第48场周赛题解A 4410. 吃鸡蛋直接按照题意模拟即可。核心代码:int main(){ ios::sync_with_stdio(0),cin.tie(0); cout << fixed << setprecision(7); int n,m; cin >> n >> m; for(int i=1;;i++){ n--; if(i%m==0) n++;
2022-04-23 21:37:43 1512
原创 判断字符串之间是否有相同字符
判断字符串之间是否有相同字符一般来说,我们给出一个容器vector< string > str;比较任意两个字符串是否有相同字符以及个数,直接的思路是选出两个字符串后,一位一位进行比较,显然这样做时间复杂度过大,一般算法题目都过不了。现在来介绍一种方法:掩码。掩码的详细定义就不介绍了,我们只需了解在此类题目中的应用。在都是大写或者小写的情况下,我们可以用一个二进制数来表示该字符串的字符集合,二进制的第 i 位为 1 表示字符集合中含有第 i个字母,为 0 表示字符集合中不含有第 i 个字
2021-06-19 22:32:10 2531
原创 优先队列(c++)
优先队列(c++)优先队列是一种抽象数据类型,与队列不同的是,它先出的是优先级最大的数.优先队列在头文件里,priority_queue pq;用来定义一个优先队列,此时表示的是越大的数优先级越大.对于一些常见的优先队列,例如越小的数优先级越大,我们可以用priority_queue<int‘, vector, greater > pq;来定义.如下面一个例题:*丑数是指不能被2,3,5以外的其他素数整除的数,把丑数从小到大排列起来,结果入下:1,2,3,4,5,6,8,9,10,1
2021-04-02 20:40:11 277
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人