- 博客(8)
- 收藏
- 关注
原创 codeforces-706D (异或trie树)
题意:给定一种集合支持一下操作1.加入一个数2.删除一个数3.给定一个数,在集合中找出一个数,使得这两个数异或值最大,输出最大值题解: 这道题可以作为异或trie树的模板题。把每一个数扩充成30位从最高位开始建树,删除的操作是为每一个节点保存一个值,如果该值不为0说明该节点存在,否则不存在。查询的时候从最高位开始,0对1,1对0进行查找,最后的结果一定是最优的。代码:#include<...
2018-05-19 22:25:28 257
原创 codeforces-547B Mike and Feet(单调栈)
题意:给一段序列,要求分别输出长度为1-n的子串中最大的最小值题解:用单调栈求出每一个数往左和往右第一个比他小的数,这样当该数字作为答案时,他就是最小值。 需要注意的是,长度短的答案由长度长的答案确定,比如长度为4的答案为10,那么当用单调栈求得长度为3的答案比10小时那么应该取10作为长度为3的答案,因为可以从长度为4的字串中取一个长度为3的包含10的字串。代码:#include<iost...
2018-05-19 20:08:31 194
原创 codeforces-501B Misha and Changing Handles(map)
#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<map> using namespace std; int n; map<string, string> ma; map<string, int>
2018-05-18 15:29:26 205
原创 codeforces-650A Watchmen(思维)
题意:给n个坐标,问有多少个坐标对的x值相等或y值相等题解:分别排序,分别求出x相等和y相等的组合,最后减去x和y均相等的#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; int n; struct node...
2018-05-18 14:55:04 197
原创 codeforces-466C(思维)
题意:给定一个数列,能用几种方法把数列分成相等的三部分题解:一开始考虑用前缀和+二分,但是数字有负数,前缀和不是递增的不能用。设每一份的平均值为avl,从前向后扫一遍,当前缀和为avl时,cnt++,当前缀和为2*avl时,ans+=cnt,因为当前位置作为第二份的结尾,而前面有cnt种方法作为第一份的结尾。因为从前往后扫,第二份的结尾都是不同的,因此不会重复。注意long long代码:#inc...
2018-05-18 13:51:32 336
原创 Codeforces Round #481 (Div. 3)
978A 水题#include<iostream> #include<cstdio> #include<cstring> using namespace std; int vis[1010]; int vv[1010]; int n; int a[1010]; int main(){ cin>>n; for(int i = 1;...
2018-05-14 22:03:56 151
原创 Codeforces Round #480 (Div. 2)
980A题意:给出一个序列,代表字符串和珍珠相连的环,问能否通过移动珍珠和线,使得相邻两个珍珠间的线相同题解:当珍珠或线为0时为NO,当珍珠比线多时为NO,当线为珍珠的倍数时为YES#include<iostream> #include<cstring> using namespace std; char s[110]; int main(){ int lnum...
2018-05-12 23:30:10 141
原创 Codeforces Round #452 (Div. 2)
899a 题意:给出一个序列,要么选出3个1的组合,要么选出一个2和一个1的组合,问最多能选出多少个组合思路:贪心即可#include<iostream> #include<cstdio> #include<cstring> using namespace std; int n, a[200010]; int x, y; int main(){ c...
2018-05-05 11:27:20 118
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人