字符串:未分类
ProLightsfxjh
这个作者很懒,什么都没留下…
展开
-
Summer Training Team Selection (1) Problem F Line Them Up 判断升序降序
给n个字符串判断升序还是降序还是乱序就定义一个, m = n;nn = n;然后如果降了一次m--;如果升了一次m++最好用m和n比较这个方法好像处理简单的字符串的时候挺常用的if(2*nn == m+1) printf("INCREASING");else if(m == 1) printf("DECREASING");else printf("NEITHER");原创 2016-04-30 22:20:39 · 4120 阅读 · 0 评论 -
Codeforces Round #400 (Div. 1 + Div. 2, combined) C. Molly's Chemicals 区间和、构造、前缀的后缀
题意:给出n个数字,要求选出一段连续的数字,使它的和为k的非负整数次方,为这样的区间有多少个。区间和、构造、前缀的后缀这是一个很有趣的构造题,一个连续区间[a, b],转化为 [1, b] - [1,a-1],如果差值,满足要求则这样的区间存在,然后换过来,对于每个k^j,对于 [1,b] - k^j == [1,ax-1],有多少个前缀和sum{[1,ax-1]}就有多少个多少个区间[ax, b] == k^j次。这里可以借助map来记录 前缀和sum{[1,ax-1]} 出现的次数。此外要处理原创 2017-03-22 01:11:31 · 699 阅读 · 0 评论 -
Canada Cup 2016 C. Hidden Word 找规律、模拟、字符串
找规律、模拟、字符串比赛的时候有个小地方字符串b 打成了 字符串d, ⊙﹏⊙‖∣ 被 FST了。首先,27个字符,然后每个数字至少出现一次,总共是26个字母,所以有且只有一个字母出现了2次。所以找到这个字母出现的2个位置,并记录为l 和 r当 r - l == 1的时候也就是2个相同的字母相邻的时候,是 "impossible",否则可以构造成 string a string b ---------- s[l] ----------原创 2016-11-09 22:05:54 · 1036 阅读 · 0 评论 -
Codeforces Round #373 (Div. 2) B. Anatoly and Cockroaches 贪心、字符串
贪心、字符串对于 1010101...... (0 ~ n-1) 如果奇数的地方不是1就 ans1++, 如果偶数的地方不是0就 ans0++,ans = max(ans0, ans1); //min(ans0, ans1)次交换, ans - min(ans0, ans1) 次改变颜色然后再对 010101......(0 ~ n-1) 的情况跑一遍2个ans取最小值复杂度 O(n)此外 用 x & 1 表示偶数的时候 要写成 ((x & 1) == 0),(x & 1)要加括号,位运算符的优原创 2016-09-28 02:06:28 · 1438 阅读 · 0 评论 -
ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛 C.A Simple Job map<string, map<string, int> > 、字符串单词词组的处理
map<string, map<string, int> > 、字符串单词词组的处理A,B CA ,B A B等等情况处理好就好当碰到,或者行末的时候, res.clear(), str.clear(); flag = false;然后用res表示该词组的前一个单词,str表示后面的单词具体实现请看代码吧原创 2016-09-24 22:28:30 · 1442 阅读 · 0 评论 -
Codeforces Round #372 (Div. 2) B. Complete the Word __ two pointers、队列(queue)
two pointers、队列(queue)用 queue<char> que;维护一个除了 '?'以外所有字符最多在该队列中出现一次的队列, 当que里的合法元素达到 26 个是就是 nice substring 了。在这过程中 用 map<char, int> ch 维护队列中每个字符出现的次数, 且用 ind 维护队列的首元素的在s中的下标。得到要求的que以后, 扫一遍map, 把没有出现过的大写字母丢到 队列 ans里去, 然后 输出 s[ 0 ~ ind-1], 输出 nice subs原创 2016-09-23 19:06:46 · 1359 阅读 · 0 评论 -
AIM Tech Round 3 (Div. 2) D. Recover the String 构造、贪心、多坑、WA162
构造、贪心、多坑、WA162首先用杨辉三角求组合数打个表, 然后匹配一下找出 cnt11, cnt00,也就是1、0的个数 //这个做法比较暴力了嘿嘿 -_-||然后如果 (a01 + a10 != cnt00*cnt11) 则没有答案否则 初始是 000000111111这样的然后每次if(a10 >= lef0) ......这样就是优先搞出大的10, 因为这个时候后面的0比较多 第一次 a10 >= lef0 就把 一个1提到最前面 a10 -= lef0, 否则是0 lef0--, 然原创 2016-08-26 23:59:49 · 1343 阅读 · 1 评论 -
Codeforces Round #362 (Div. 2) B. Barnicle 科学记数法、表达式处理
处理科学计算法的表达式找到 " . " 和 " e " 的位置, 然后读清题目的条件就好了a and b contain no leading zeros and d contains no trailing zeros (but may be equal to 0). Also, b can not be non-zero if a is zero.原创 2016-08-23 23:05:39 · 713 阅读 · 0 评论 -
URAL 2024 Adventure Time 思维题、Interesting
统计每个字母出现的次数, 然后从大到小排序最大的k的总个数就是 he size of the largest safe set of Darkness Rocks 然后1)如果color[k-1] != 0, 则 统计这k个里的 color[i] == color[k-1] 记为cnt1, 并统计所有的里面的color[i] == color[k-1] 记为 cnt2, 然后C[cnt2][cnt1]就是the number of different safe sets of this size.了原创 2016-07-30 23:41:27 · 905 阅读 · 0 评论 -
2016"百度之星" - 资格赛(Astar Round1) Problem D 简单题
做一个题就可以进初赛,所以挑了个简单的题做了下,还是TLE 了好几次 汗, 然后用string sort 936ms 卡过 (┬_┬)试了map+bitset, 用不了,试了自己搞个数组+map, 用不了然后用string初始化为200多个0,然后每个字母就变成1,TLE, 而且 显然也不对然后用直接字符串读取进来, 然后用map<map , > 结果超时了然后突然想到了,string 也可以排序, 这样用map[string]++, 才来个卡过题目虽然是简单题,但还是有所收获,毕竟新手嘿嘿原创 2016-05-16 01:52:54 · 4536 阅读 · 2 评论 -
XVII Open Cup named after E.V. Pankratiev. Eastern Grand Prix. Problem G. Gmoogle 模拟、字符串处理、文本搜索
题意:要求模拟一个搜索系统,给出文本,然后每次查询几个单词要求输出所以出现查询单词的句子。模拟、字符串处理、文本搜索先把文本预处理成一个一个单独的句子,并标号0、1、2......,并且用map<string, vector<int>>建立单词到句子的映射。然后对于每个单独查询的每个单词都会有一个集合,然后对这些集合取一个交集就是答案了。这里用到的求交集的方法是 是用一个map<int, int> check表示这些集合里每个句子出现的次数,最后遍历一遍check,出现次数为查询的单词的个数的句子原创 2017-12-08 14:25:01 · 852 阅读 · 0 评论