思维题
文章平均质量分 89
ProLightsfxjh
这个作者很懒,什么都没留下…
展开
-
AtCoder Regular Contest 089 D - Checker 思维题、点的转移、二维前缀和
题意:用k*k的黑白正方形交替填充二维坐标平面如上图,现给出n个方案(x, y, color表示坐标(x,y)的颜色为color),问最多有多少方案能够同时满足。思维题、点的转移、二维前缀和首先要想到把所有的点转移到平面{(0,0)~(k-1,k-1)}内。1、按照45度向量移动不会改变颜色,modx = x / k, mody = y / k; x -= min(modx, mody) * k; y -= min(modx, mody) * k;2、跳动2*k格也不会改变颜色,所以接下来if原创 2018-02-01 18:58:41 · 600 阅读 · 0 评论 -
UVALive 5963 Confusion in the Problem Set 思维题、Interesting
把输入的数字全转化为0 到 (n -1)/2cnt[min(val, n - 1 - val)]++;并记录则如果符合条件则每个数出现2次, 比如2个1, 2个2,... 此外如果奇数则 则第 (n - 1)/2 + 1 也就是中间那个数对应的数字(n - 1)/2只出现一次, 如果偶数则 n/2 - 1 这个数出现2次。复杂度 O(n)原创 2016-07-22 23:11:13 · 1509 阅读 · 0 评论 -
Codeforces Round #350 (Div. 2) B. Game of Robots __ interesting
这个思维题, 不用构造或模拟哦, 直接-=i就可以的^_^原创 2016-07-09 23:24:05 · 574 阅读 · 0 评论 -
Codeforces Round #353 (Div. 2) C. Money Transfers 环、贪心、前缀和推广、好题
首先最多是ans = n-1次,这个时候只有sum总是0;否则, 只有 有一个小区间是 0, 则ans就少1次;所以要找到,尽可能多的sum == 0 的区间。当时一直不知道,环该怎么处理,结束了,后来才想明白, 环不没有影响, 可以把 j ~ n 和 1 ~ i 这个设定为最后一个sum为0的区间,所以找 1 <= i <= j <= n 内的尽可能多的sum == 0的区间就好。环就是两种情况,j~n和1~i分别是两个最短的sum==0的区间;或者j~n和1~i一起组成了一个sum==0的原创 2016-05-17 20:03:19 · 1915 阅读 · 1 评论 -
Codeforces Round #353 (Div. 2) B. Restoring Painting __ map or set 、思维题
自己画一个3*3的方格图, 然后标上 a, b, c, d 然后发现左上角标上x, 中间标上y,然后剩余3个空格可以表示出来。故可以O(n)的来做扫一遍,过程中用ans[][][][]来表示那个状态的个数。最后得到不同的个数然后n*ans.size()就好了,(n 表示中间的数字的可能情况总数为n), 然后注意可能溢出就好了……Solution 2 建一个结构体 q, 然后四个成员 ru(rights up), lu(lest up), ld(lest down) and rd(right dow原创 2016-05-17 19:50:02 · 3164 阅读 · 1 评论 -
Codeforces Round #353 (Div. 2) A. Infinite Sequence 思维题
被cha了,(┬_┬), 原因是用 (b - a) * c >= 0 来表示(b-a) 与 c同号, 或b - a == 0.这里int * int 溢出了,以后还是基本上不要这样,写了。老老实实的 ((t>=0&&c > 0)|| (t<=0 && c < 0)) 这样写吧。如果 c == 0, 则 a == b 则YES 否则 NO如果c != 0, 则看看能不能整除, 同时 (b-a) 要与c同号(如果 b与a不相等)原创 2016-05-17 19:33:18 · 2792 阅读 · 1 评论 -
2016 UESTC Training for Dynamic Programming B - 柱爷与最大区间和 最大区间和推广、前缀和、枚举间隔点
最大区间和推广、预处理、打表、枚举间隔点 //本来实验过先找到一个最大区间,然后得到ans 和左右边界, 在里面找到最小符区间然后减去, 但这样显然不对,没办法^_^从左到右扫一遍,从右到做扫一遍,处理好前缀和suml[maxn] 和 sumr[maxn], 并分别 O(n)的预处理出 1 ~ i 的最大连续区间和L[i], 和 i ~ n-1 的最大连续区间和 R[i]然后枚举间隔点, i = 1 ~ n-2; ans = max(ans, L[i-1] + R[i+1];复杂度O(n);原创 2016-05-17 11:43:49 · 1208 阅读 · 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 · 4548 阅读 · 2 评论 -
Codeforces Round #352 (Div. 2) B. Different is Good __ substrings water problem
the smallest Substring of the given string can be lowercase English letters, so if it is possible to make the goal string the size of the given stringcan't be bigger than 26, so is size > 26 print -1;the use set too find the number of the different lette原创 2016-05-12 11:24:04 · 1964 阅读 · 2 评论 -
Codeforces Round #352 (Div. 2) C. Recycling Bottles __ geometry, greedy and pretreat
geometry, greedy and pretreat.First of all, the distant will be sigma{ 2*distan of Bottle to the recycling bin}, then the first choices of the bottle make it different.As we can know, there at least one person should walk to a Bottle and put it to the原创 2016-05-12 11:47:30 · 1857 阅读 · 2 评论 -
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 · 4133 阅读 · 0 评论 -
Summer Training Team Selection (1) Problem A ACM Contest Scoring 水题
快半个月没有把自己的代码什么更新上来了,这两周既是期中考试又是数据结构专题training,然后今晚专题结束才能把早就放在草稿箱的那些放出来☺今天下午一次队内赛,做的中东的区域赛的。感觉自己太智障了,第一题还CE了一次time标识符在BC上都好用的,但OJ说不行,以后用_time或者什么好了,然后输出格式没有注意就交了一发,……Problem A ACM Contest ScoringOur new contest submission system keeps a chronological log原创 2016-04-30 21:50:55 · 3891 阅读 · 0 评论 -
Gym 100541 B. Sum 分块的技巧、思维题、Interesting
写几个n试试看, 会有连续的数字出现, 比如n == 5, 5 2 1 1 1n == 8, 8 4 2 2 1 1 1 1相当于把这些数据分成好多块, 最多sqrt(n)份,区别于数据结构分块的另外一种分块吧^_^len 表示相同数字的个数, 然后i表示这些相同val (LL)的第一个数的下标, ans + len*val //然后注意每一步取模i += len; //直接跳到下一种val的第一个数其中 len = n / val - i + 1原创 2016-07-26 01:37:07 · 1368 阅读 · 0 评论 -
OpenJ_POJ C16D Extracurricular Sports 找规律、大整数类
做这种题感觉比较碰运气(水平不够, 所以比较看运气了)这个是找规律的, 写几组然后看看所有数的最大公倍数 == 所有数的和1 2 31 2 6 91 2 6 18 27这里前 n - 1个数是 1 2 6 18 这样 以3为公比增加的, 然后每个n 对应的最后一个数 是 3^n次然后套一个大整数类的版就好啦这个大整数类的版很棒的原创 2016-07-26 23:25:37 · 1512 阅读 · 0 评论 -
UESTC 2016 Summer Training #4 Div.2 B - ฅ(*`ω´*)ฅ 有趣的思维题
读懂题意很重要嘿嘿, 就是先每个1个数删去一个数, 然后 在剩余的数字里 每隔2个数删除一个数, 然后又在剩余的数里每隔3个数删除一个数, 一次类推反正笔者自己觉得这个题挺有意思的,嘿嘿^_^原创 2016-07-17 23:21:12 · 1251 阅读 · 0 评论 -
Codeforces Round #350 (Div. 2) C. Cinema __ sortings, 思维题,many data
挺好的题目,一不小心就尝试的两种不合理的做法,而且是本来认为可以但快写好了发现不对(┬_┬)最主要应该考虑的应该是从什么映射到什么会比较好,比较容易处理//!直接对 la[maxn] 用map记录, 相同language 出现的次数, 然后对每个<b, c> 进行比较原创 2016-07-09 23:40:11 · 730 阅读 · 0 评论 -
Summer Training Team Selection (1) Problem D Hidden Password STL,字符串匹配,简单题
先用map记录下来password中每个字母出现的次数;然后去历遍message,如果当前访问的不是正在查找的,并且在map中的记录里不是0,那么FAIL 如果是则,map里想要的字母--,然后查找password中的下一个字母复杂度 O(n)原创 2016-04-30 22:31:07 · 4114 阅读 · 0 评论 -
Codeforces Round #389 (Div. 2) B. Santa Claus 贪心+字符串处理、易错
题意:给定一个原串和一个新串,它们之中存在一些序偶,(x, y) 在原串的i位置为x,在新串的i位置是y,且x != y 则存在序偶(x, y),原串的所有x在新串中必须只用y表示。一个字母最多出现在一个序偶中,问这样的序偶有多少对。贪心+字符串处理、易错理解懂题意是关键,然后扫一遍就好。一旦存在序偶(x, y) 则x、y之后不能出现在别的序偶中了,原串中的所有x,在新串中的对应位置都必须是y,新串中所有y在原串必须是x,否则ans = -1;扫一遍得到序偶之后,再重新扫一遍,按照一旦存在序偶(x原创 2017-01-12 00:46:04 · 734 阅读 · 0 评论 -
Codeforces Round #385 (Div. 2) B. Hongcow Solves A Puzzle 几何、思维题
题意:那个由x构成的图片可以平移但不能翻转,问2个一样的图片分别经过以后能否构成一个矩形。几何、思维题其实就是判断所给的X构成的图形是否本身是矩形,因为只有这样才能在不翻转的情况下拼出一个矩形。笔者判断矩形的方法是,用4个变量分别记录x出现过的最高点最低点左左点最右点,然后 判断 (r - l) * (u - d) 是否 等于 x的总数,如果相等就是矩形了。这个题的难道应该是题意比较费解吧,没办法复杂度 O(n)原创 2017-01-10 23:00:42 · 546 阅读 · 0 评论 -
Codeforces Round #383 (Div. 2) B. Arpa’s obvious problem and Mehrdad’s terrible solution 数论、易错
题意:找出多少组ai和aj 使 ai ^ aj == x.数论、易错 ai ^ aj == x. => ai ^ x == aj这样把sz[ai] 为数ai出现的次数,对于每个ai,ans += sz[ai] * sz[ai ^ x] ; sz[ai ^ x] = 0; //即每一对 ai 和 aj 只处理一次。很显然还有一个特殊情况,即x == 0 的时候, ai ^ ai == 0, 故此时特殊处理 ans += sz[ai] * (sz[ai] - 1) / 2;然后 中间过程原创 2017-01-10 18:18:48 · 761 阅读 · 0 评论 -
Gym - 101102B B. The Little Match Girl 贪心、数论、分步
题意:给一串由火柴构成的数字,可以移动火柴改变数字,使得整个数尽可能大,但不能增加或减少数位。贪心、数论、分步每个数字的火柴数分别是a[0] = 6, a[1] = 2, a[2] = 5, a[3] = 5, a[4] = 4, a[5] = 5, a[6] = 6, a[7] = 3, a[8] = 7, a[9] = 6;统计出总火柴数,优先构造出6,此时要判断if(cnt - 6 * i >= (c - i) * 2 && cnt - 6 * i <= (c - i) * 7 && c)即剩原创 2017-01-14 21:16:44 · 1235 阅读 · 0 评论 -
第八届ACM趣味程序设计竞赛第三场(正式赛)官方题解
UESTC 第八届ACM趣味程序设计竞赛第三场(正式赛)题解若有疑问建议先看题解然后自己代码实现,实在不行再看文章最后的标程A - 渐变字符串B - 保护果实C - Little_Pro的driver朋友们和他的魔法D - 扑克斗争E - shallowdream and girl原创 2016-12-11 17:01:14 · 10273 阅读 · 0 评论 -
Codeforces Round #340 (Div. 2) B. Chocolate 组合学、简单题
0 1 0 1 0 1 0从左向右遍历, 遇到第一个1后开始算(ans = 1), 然后连续的cnt个0 碰到隔断连续0的1的时候 ans *= cnt, cnt = 0, 然后继续访问这样就把左端的连续0和右端的连续0去掉了2 发 Wrong answer on test 7尴尬 最开始的时候只包括了 0 1 0 1 0, 1 0 1, 1 1 1 1 1 1这些情况,但漏了0 0 0 0 0 0,所以初始化为 ans = 0; // 最开始的时候是初始化为 1 的复杂度 O(n)原创 2016-09-01 01:02:21 · 644 阅读 · 0 评论 -
URAL 2025 Line Fighting 水题、贪心、均分
贪心尽可能均摊 t = n/k; res = n - t*k; 然后res个 t+1, n - res 个t, 然后算下就好了复杂度 O(n)原创 2016-07-30 23:20:56 · 943 阅读 · 0 评论 -
URAL 2035 Another Dress Rehearsal 水题、易错
虽然是水题但也WA了两发, 尴尬,第一次WA, 是对于 x > c && y > c的情况没有处理好第二次WA, 是由于 0 ≤ A ≤ X, 0 ≤ B ≤ Y 没有注意, 因为 A最大不能超过X, B 最大不能超过Y, 这个相对的就是如果 a = min(x, y) < c, 但是 max(x, y) > c, 这个时候可以 如果 y 小 则 b = y; a = c - b; 或者其实可以直接令大的为c, 然后小的为0 ☺☺原创 2016-07-30 23:10:21 · 945 阅读 · 0 评论 -
Codeforces Round #352 (Div. 2) A. Summer Camp __ water problem
Use stringstream to build the line , then cout the str[n-1]原创 2016-05-12 11:15:35 · 1816 阅读 · 0 评论 -
UESTC 1297 Bank 思维题
Given XCNY (Chinese yuan), can you exchange it to exactly YCNY soon? The only way you have is to spend money at a vending machine once, which has an infinite number of copies of merchandise of all possible positive price.However, you cannot make any assu原创 2016-03-29 12:31:42 · 1751 阅读 · 0 评论 -
UESTC 1017 王之困惑 找规律、分类讨论
众所周知,绩点王(以下简称王)是集训队中的学神,因为他的绩点总是满的。一天晚上,王做了一个奇奇怪怪的梦。在这个奇奇怪怪的梦里,绩点是以一串01串表示的。而王则拥有两种神奇的魔法可以改变自己的绩点。魔法1:使用此魔法时,王可以去掉当前绩点的最左边的第一个数。魔法2:使用此魔法时,王可以在当前绩点的最右边增加一个数x。其中,若当前绩点的01串中,1的个数为奇数,那么x=1;若1的个数为偶数,那么x=0。假设王的绩点以A串表示,王想得到的绩点以B串表示。王想知道,能否通过使用以上两种魔法,使得自己原创 2015-11-28 00:42:09 · 999 阅读 · 0 评论 -
UESTC 760 方方是个坏孩子 有限制的最大连续和
方方是一个调皮的孩子,每天到处搞破坏把妹子,邻居都讨厌他。一天方方不小心把邻居老姚神的魔法棒给摔成了n段,长度分别为a0,a1,⋯,an−1。方方虽然调皮,但还是不敢招惹可怕的老姚神,修复魔棒是如此的艰难,只能请求另一个邻居哈利波特大用魔法把魔棒修复,但哈利波特大正在忙着统计霍格沃茨的男女比例,没有太多时间帮方方修魔棒,只答应只为方方使用一次魔法。哈利波特大的魔法很奇怪,魔法只能把一段连续的魔棒片段连在一起,并且连接的片段的长度之和必须为p的倍数,(例如n=6,p=11,a0到an−1分别为原创 2015-11-02 14:57:48 · 1342 阅读 · 0 评论 -
UESTC 758 P酱的冒险旅途
P酱是个可爱的男孩子,有一天他在野外冒险,不知不觉中走入了一块神奇的地方。他在0时刻进入这个地方,每一时刻他都只能向某一特定的方向移动长度为1的距离,当然他也可以选择不移动。移动需要花费1的时间。各个时刻他允许移动的方向由一个字符串给出,字符串只包含U、D、L、R四种字符,其中U表示向上(y轴正方向)移动,D表示向下(y轴负方向)移动,L表示向左(x轴负方向)移动,R表示向右(x轴正方向)移动。字符串的第x个字符代表了第x时刻P酱可以移动的方向,字符串的长度只有t,也就是说,超过t时刻,P酱原创 2015-11-02 14:29:12 · 1852 阅读 · 1 评论 -
UESTC 1256 昊昊喜欢运动 n^2的预处理 or 前缀和
1、直接暴力,☺☺写起来简单,快。很可能超时2、用n^2的预处理,直接搞出ans[i][j],然后O(1)的询问。当时2000的平方算成1e8级了,☺☺,事实上是1e6级。3、前缀和思想在输入的时候直接维护ans[ i ][ j ],表示在[1,i ]中j 出现了多少次,维护的时候注意把前一个的所有信息都要维护的这一项;然后每次询问扫M,判断ans[ y ][ i ]-ans[ x-1 ][ i ]是否大于0 。用cott计数;用前缀和相对n^2预处理memory小了很多,但显然n^2预处理要快一原创 2015-12-05 23:49:27 · 1386 阅读 · 0 评论 -
UESTC 1024 Flying Chess 注意那个 1<x<N 不是1<=x<N 模拟
Ye.Dong likes playing flying chess very much, so he wants Ye.Han to play with him.To simplify the problem, we define the rules as follows: 1.Ye.Dong and Ye.Han both have two plane chesses. All chesses are at point 0 at the very begining. When two planes原创 2015-12-02 22:34:21 · 1045 阅读 · 0 评论 -
UESTC 1033 Marineking wilyin
There are three marines in wilyin's base. Their positions form a right triangle.Now wilyin get another marine,he want to put it on some place to form a rectangle with the former three marines.where should he put it on?InputThe first line of the input co原创 2015-11-28 00:56:20 · 740 阅读 · 0 评论 -
UESTC 1251 谕神的密码 贪心法
谕神是集训队里面智商数一数二的大神,在他的电脑里储存着他在学习的东西。每天都要通过学习来提高自己的知识水平。然而,作为一个长者,谕神不愿意将自己的学习资料给那些too young, too simple, sometimes naive的人看,以免被他们看了去搞一个大新闻。于是,谕神给自己的电脑设置了密码。当然,他设置的密码也要按照基本法。这个基本法是谕神自己搞出来的。法则是这样的:1、密码由2个n位数组成,中间由空格隔开,其中,两个数的各个位的和均为s2、是满足1条件的最小的数和最大的原创 2015-12-06 00:00:16 · 949 阅读 · 0 评论 -
UESTC 1012 Ladygod 任意进制的转化
有一天人诹Lee在随手帮女神做题,突然女神发现了自己演算纸上的一个式子,但是式子只有两个加数却没有结果,最近在学不同进制加减法的女神忘了这个两个数字是多少进制了(只记得是小于等于10),但是她很好奇在可能的多少进制下这个式子得到的答案长度最长,为了从人赢Lee手中抢走女神,你需要快速计算出这个答案,例如78+87=? 在10进制下是165,在9进制下是176,而小于等于8的进制显然是不合法的,所以这个式子答案可能的最长长度就是3.Input第一行读入一个整数 T(1≤T≤100000) 表示数据组数原创 2015-11-28 01:00:55 · 1058 阅读 · 0 评论 -
UESTC 757 棋盘 博弈、策略
棋盘Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)Submit StatusUDK和RU在一个白色的方格棋盘上玩游戏,棋盘有N行M列,由N×M个小方格组成。两人轮流进行游戏,UDK先开始,然后是RU。在每一轮游戏中,当前一方需要在棋盘上原创 2015-11-02 14:16:11 · 1721 阅读 · 0 评论 -
UESTC 1018 王之新学期 贪心法
新的学期到来了,王早已经把整个学期全都安排好了。整个学期一共n天,第i天安排了Pi件事情。可是就在开学的前一天晚上,王突然觉得这个整个学期安排可能不够有趣。一个学期是有趣当且仅当对于任意一个整数i(1≤i≤n),第i天的的事情数目总是等于倒数第i天的事情数目。因此王必须花费一定代价改变安排使得整个学期变得有趣。王每次操作都花费一个代价,可以将一件事情从当天提前到昨天或者延后到明天。(第一天的事情不能提前,最后一天的事情不能延后)请问王最小要花费多少的代价使得一个学期是有趣的?比如,当 n=3,p原创 2015-12-08 01:12:46 · 954 阅读 · 0 评论 -
UESTC 1013 我的魔法栈 贪心法
自从玩DOTA2被集训队里的qzy和acerlawson吊打以后,zentorwie灰心至极,一怒之下把DOTA2给删了。删完游戏之后zentorwie决定找点别的东西玩的。于是他来到了魅力之都——郫县,在一家卖滑板鞋的店里,买了他梦寐以求的……额……魔法栈。这个魔法栈里面可以放n个球,球有两颜色,黑和白。每个球除了颜色以外都是相同的。"我的魔法栈,时尚时尚最时尚。"回家的路上,zentorwie情不自禁地哼起了歌。回家到后,zentorwie马上开始把玩这个栈。他想把栈里的所有球都变成黑色原创 2015-11-28 00:48:31 · 1459 阅读 · 0 评论 -
UESTC 1019 SSRaligun酱的魔法符文 用记忆实际区间最左min1最右max1来减小时间复
用记忆实际区间最左min1最右max1,来减小时间复杂度 但注意min1要初始化为你们可能的最大值或比最大值大一点,而max1则是最小值或比最小值小一点,这些也是要注意的吧,不小心漏掉,到时候出问题又要找bug。 也让自己意识到了else if 重叠用的时候该注意的(程序中打★★的地方)。type1+type1=type1 type2+type2=type2 type3+type3=type3type1+type2=type4 type4+type1=type4 type4+type2=type原创 2015-12-02 00:06:18 · 1266 阅读 · 0 评论 -
UESTC 1255 斓少摘苹果 贪心法
斓少家的院子里有N棵苹果树,每到秋天树上就会结出Fi个苹果。苹果成熟的时候,斓少就会跑去摘苹果。斓少摘苹果的方式非常的奇特,每次最多可以选择M个苹果并摘下来。但是摘下来的苹果两两一定不是来自同一棵树,问斓少最少摘多少次,才能使得每个苹果都被摘下来呢?Input第一行输入一个数N和M(1≤M≤N≤106),代表苹果树的数量,和斓少每次最多摘多少个。第二行输入N个数,第i个数Fi(0≤Fi≤106 )代表这一棵树上一共有多少个苹果原创 2015-12-06 00:21:26 · 1044 阅读 · 0 评论