随笔分类 -  STL

摘要:A:http://codeforces.com/contest/1475/problem/A 题意: 判断n是否有>1的奇数因子 解析: 不断比2即可。 #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> 阅读全文
posted @ 2021-01-28 00:48 liyexin 阅读(122) 评论(0) 推荐(0)
摘要:A:https://codeforces.com/contest/1454/problem/A 题意: 输出1~n的一个排列,满足每个i!=pi 解析: 偶数直接倒叙 奇数不能倒叙,因为中间点不符合。所以随便调下位置即可。比如先输出n,然后正序输出1~n-1 #include<iostream> # 阅读全文
posted @ 2020-11-25 20:50 liyexin 阅读(232) 评论(0) 推荐(0)
摘要:地址:https://www.acwing.com/problem/content/description/804/ 一: 本来想的是差分做,但是范围是不允许开这么大的数组的。l,r<=1e9 所以考虑离散化。 发现n只有1e5,n个加操作,m个L,R,最多用到n+L+R个区间,也就是3e5。所以开 阅读全文
posted @ 2020-11-13 16:40 liyexin 阅读(134) 评论(0) 推荐(0)
摘要:地址:https://www.acwing.com/problem/content/83 没买课的话,应该是看不到题的,所以截个图。 暴力的做法,是对当前的每一个数,都往左遍历一遍。每次都一个不落地遍历,其实很多是无用功,很多数字在后续已经用不到了。 给个图示: 可以发现,对于当前的ai,它前面大于 阅读全文
posted @ 2020-11-08 21:21 liyexin 阅读(129) 评论(0) 推荐(0)
摘要:A:http://codeforces.com/contest/1443/problem/A 解析: 考虑从2*n开始,每次+2构造 #include<cstdio> #include<cstring> #include<vector> #include<set> #include<algorith 阅读全文
posted @ 2020-11-03 21:39 liyexin 阅读(109) 评论(0) 推荐(0)
摘要:acwing评测地址:https://www.acwing.com/problem/content/description/1232/ 解析: 很容易想到前缀和。但是n*n很明显不行 对于[L,R],如果为k的倍数那么: (sumR-sumL-1)%k==0 那么sumR%k==sumL-1%k 但 阅读全文
posted @ 2020-10-15 20:19 liyexin 阅读(127) 评论(0) 推荐(0)
摘要:地址:https://www.acwing.com/problem/content/872/ 课程没买的话,应该是看不了的,所以截个图。 唯一分解定理: 则N的约数个数就为: 证明:P1^a1的约数个数为a1+1 P2^a2的约数个数为a2+1 ..... 根据乘法原理,即为: (1+a1)*(1+ 阅读全文
posted @ 2020-10-03 21:00 liyexin 阅读(442) 评论(0) 推荐(0)
摘要:A:http://codeforces.com/contest/1399/problem/A 解析: 不多说了,直接sort,判是否存在相邻差>1 #include<iostream> #include<cstring> #include<algorithm> #include<stack> usi 阅读全文
posted @ 2020-08-06 22:06 liyexin 阅读(152) 评论(0) 推荐(0)
摘要:洛谷地址:https://www.luogu.com.cn/problem/CF508E 题意: 给出n对L,R 第i个左括号,与它匹配的右括号与左括号的距离范围为:[L,R] 求是否有序列满足,否则:IMPOSSIBLE 解析: 看了不少题解,勉强搞懂。 对于括号匹配问题,应该优先想到栈。因为括号 阅读全文
posted @ 2020-08-05 17:57 liyexin 阅读(104) 评论(0) 推荐(0)
摘要:地址:https://www.luogu.com.cn/problem/P1090 解析: 要想最后花费最少,肯定每次要加入两个最小值。 所以贪心思路,就是每次取剩余堆的两个最小值相加,相加以后,把它放入队列。 使用优先队列实现: priority_queue<int,vector<int>,gre 阅读全文
posted @ 2020-07-09 18:07 liyexin 阅读(241) 评论(0) 推荐(0)
摘要:地址:http://poj.org/problem?id=3321 题意: 树上有n个位置,初始每个位置都有苹果。以1号为总根 n-1条分叉边 m条询问: Q:id 以id为根的子树有几个苹果 C:id id处如果有苹果,摘掉,否则放上一个苹果。 解析: 假设输入的是这么一棵树: 看数据,肯定要前缀 阅读全文
posted @ 2020-06-09 17:41 liyexin 阅读(212) 评论(0) 推荐(0)
摘要:地址:http://codeforces.com/contest/1362/problem/B 题意: 找出最小k,去^ a[]里的每个值,使得a[]不变(可变顺序) 解析: 异或^:同为0,异为1 数据很小,直接暴力即可 map来判定是否相同,每次^完毕以后,用map记录出现次数判定一遍即可。 # 阅读全文
posted @ 2020-06-05 18:18 liyexin 阅读(99) 评论(0) 推荐(0)
摘要:A: http://codeforces.com/contest/1353/problem/A 题意:构造出一个长度为n的序列,sum=m。求出最大的相邻差值的绝对值之和。a[]>=0。 解析:由于最小为0,所以可以这么构造:0,x,0,x,0,x......x为sum的平均值。那么结果总的就是2* 阅读全文
posted @ 2020-05-15 17:04 liyexin 阅读(227) 评论(0) 推荐(0)
摘要:地址:http://codeforces.com/contest/1348 题意:2^1,2^2....2^n,分成两部分,使两部分的差最小。 解析:可以发现,n越大,2^n越大,和前面的差距越来越大。所以第一部分先把2^n先加入,再陆续加入2^1,2^2.....直到n/2个即可。 #includ 阅读全文
posted @ 2020-05-03 20:13 liyexin 阅读(158) 评论(0) 推荐(0)
摘要:地址:https://ac.nowcoder.com/acm/contest/5338 解析:这道题用python的话,也就几句代码的事~c++的话,用stack模拟即可,stack是先进后出,所以很符合本题要求。因为输入*,再输入一个数的话,肯定是先乘它之前最后出现的数。把乘出来的数放进stack 阅读全文
posted @ 2020-05-02 15:36 liyexin 阅读(282) 评论(0) 推荐(0)
摘要:地址:https://ac.nowcoder.com/acm/contest/5523/F 题意:给出s1串和s2串,按以下方式组合: 1: s1 2: s2 3: s1+s2 4: s2+s1+s2 5: s1+s2+s2+s1+s2 .......... 对每次过程s1,s2串出现次数计数,用a 阅读全文
posted @ 2020-04-26 22:04 liyexin 阅读(220) 评论(0) 推荐(0)
摘要:题意:每次给出一个只含小写字母的字符串,如果之前没出现过,就输出YES,插入到数据库,否则输出 它+数字 的形式,数字按出现顺序排列。 解析:比如只输入a,会陆续出现a,a1,a2,a3......a10,a11。可以看出来,我们压根不需要每次判断当前字符串的上次出现是什么样子,其实本质上就是原字符 阅读全文
posted @ 2020-04-22 22:20 liyexin 阅读(209) 评论(0) 推荐(0)
摘要:地址:http://codeforces.com/contest/1330 题意:题意不太好理解。简单来讲就是,给出一组数,能从1最多数到几,不够的用数来填,最多填x次。 解析:从1往前数,没有就填,填x次。填完后,记得再往后数,数到map[i]==0为止。 #include<iostream> # 阅读全文
posted @ 2020-04-04 17:38 liyexin 阅读(266) 评论(0) 推荐(0)
摘要:普通队列:先进先出,无优先级。优先队列,加入了优先级后,拥有最高优先级的元素先出来,本质是堆实现的。 操作还是之前那一套操作: top //访问队头元素 empty //队列是否为空 size //返回队列内元素个数 push //插入元素到队尾 (并排序) emplace //原地构造一个元素并插 阅读全文
posted @ 2020-03-24 16:46 liyexin 阅读(193) 评论(0) 推荐(0)
摘要:传送门:http://codeforces.com/problemset/problem/867/E 题意:根除n个股票,刚开始手里没股票。买入卖出,求出最大收益。 解析:贪心+优先队列(从大到小)。只是让我们求最大收益,所以我们把它们全都借走而且不付钱。怎么想,我借走股票,以后如果遇到高价可以卖, 阅读全文
posted @ 2020-03-24 16:40 liyexin 阅读(228) 评论(0) 推荐(0)