其他——思维训练
文章平均质量分 73
_hehe_
这个作者很懒,什么都没留下…
展开
-
Easy billiards
可以倒着思考这个问题。想象一下,假如最后只能剩下一个点,那么采用正确的策略时,最后一步一定是剩下了一个点。那么我们倒过来整个过程,在最后的一个点基础上选定一个方向,增加在输入集合中的一个点,并一直进行下去,直到不能增加为止,这样就可以得到一个可以删成一个点的点集。那么如果还有其他的点,均使用这个方式即可。原创 2014-03-04 16:04:44 · 1186 阅读 · 0 评论 -
RCC 2014 Warmup (Div. 2)__Elimination
这个题目很简单,自己的方法也比较麻烦。重点需要注意的一个,对下文中的程序,对于变量‘all’,之后的各种操作都是以其为正值来的。而c语言的特点决定了负数也是可以进行这些操作的,因此,在进行这些计算的时候要注意保证所计算的值一定不能是负数原创 2014-04-18 17:21:51 · 1141 阅读 · 0 评论 -
Codeforces Round #248 (Div. 1)——Nanami's Digital Board
给n*m的0/1矩阵,q次操作,每次有两种:1)将x,y位置值翻转 2)计算以(x,y)为边界的矩形的面积最大值(1 ≤ n, m, q ≤ 1000)原创 2014-07-17 10:54:54 · 1230 阅读 · 0 评论 -
Codeforces Round #253 (Div. 2)——Borya and Hanabi
n表示有n个卡片,每个卡片有一种颜色和一个数字(共五种不同的颜色和五个不同的数字)。事先知道每种卡片有几张,但是不知道具体的位置。问需要几次提示就可以知道所有卡片的位置都在哪里:每次提示可以选择一个颜色或者一个数字,就可以知道含有所选属性的牌有哪些。原创 2014-07-17 16:02:07 · 1057 阅读 · 0 评论 -
Codeforces Round #256 (Div. 2)——Painting Fence
n个木条,输入n个木条的高度,每个木条的宽度均为1。现在有长宽均为1的刷子,每次可以选择横着刷或者竖着刷,每次刷的时候不能离开木条,问将所有木条均涂色至少需要刷几次。(刷的时候可以经过已经被刷过的地方)原创 2014-07-18 10:39:28 · 1183 阅读 · 0 评论 -
Fox Observation
在无限大的二维平面上给n个点(点在方格内部),坐标均为整数值,每个点有一个值。现在需要选择一个矩形(定点坐标均为整数,切均在方格内部),值等于矩形内的点之和加上边上的点的和除以面积(面积大于0)原创 2014-07-26 20:54:20 · 984 阅读 · 0 评论 -
Inna and Binary Logic
是用二进制的思路,把每个数的每一位排列开,可以得到n个0、1的排列,然后按照上述规则可以形成一个上小下大的三角形原创 2014-03-07 21:59:21 · 1298 阅读 · 0 评论 -
Codeforces Round #235 (Div. 2)__C. Team
题目链接分析:方法比较麻烦,不过觉得这个思路还是比较清晰的。考虑把n个0放到m个连续的1中间;(左边或右边有一个0)n - 1个0放到m个连续的1中间;(两侧各有一个0)n - 2个0放到m个连续的1中间反思:思路清晰,但是遇到这种判断情况是否符合题意的时候总是找不全需要判断的条件。此题第一次错就是因为在0插入1时,没有判断sv(比较短的1的数量)不能等于0而出错。还是原创 2014-03-11 21:48:13 · 1083 阅读 · 0 评论 -
Subimage Recognition
给两个矩阵i和j,只包含零和一。求是否能在j矩阵中选择若干行和若干列,使得他和i完全相同原创 2014-08-08 17:32:53 · 886 阅读 · 0 评论 -
Samurai's Stroke
一个长度为L的木棍,有n个支点支撑,每个点是一个int数,表示距离木棍左端点的距离。求在那些位置将木棍劈开可以使得至少有一个木棍掉下去,输出这些位置的长度原创 2014-08-08 17:39:58 · 916 阅读 · 0 评论 -
A Game with Colored Balls
给一个长度为n的字符串,每次删除字母相同切连续的串,如果有多个,删除最左边的、最长的串。每次删除输出串的字母,每个字母的下标(1-n)N (1 ≤ N ≤ 10e6),串只包括red (‘R’), green (‘G’) or blue (‘B’)原创 2014-08-11 10:27:17 · 1154 阅读 · 0 评论 -
Parallel and Perpendicular
输入n,求正n边形中的对角线1和对角线2的个数(对角线1:至少与其他一个对角线平行;对角线2:至少与其他一个对角线垂直),对角线不能是多边形的边原创 2014-08-12 10:01:23 · 1417 阅读 · 0 评论 -
2014牡丹江——Known Notation
输入一个长度不超过1000的字符串,包括数字(1-9)和星号(*)。字符串中的空格已经丢失,所以连起来的数字串可以看成许多分开的数,也可以看成连续的数,即可以随意添加空格。现在有两种操作:1)在任意位置添加任意类型的字符(数字或者星号) 2)交换字符串中的任意两个字符求:最少操作多少次,使得得到的串是一个合法的逆波兰式原创 2014-10-13 13:57:50 · 1139 阅读 · 0 评论 -
LeetCode——Trapping Rain Water
LeetCode——Trapping Rain Water原创 2017-03-18 01:33:50 · 321 阅读 · 0 评论 -
LeetCode——Container With Most Water
LeetCode——Container With Most Water原创 2017-03-13 18:10:47 · 311 阅读 · 0 评论 -
LeetCode——Substring with Concatenation of All Words
LeetCode——Substring with Concatenation of All Words原创 2017-03-15 21:19:16 · 278 阅读 · 0 评论 -
Codeforces Round #245 (Div. 1)——Guess the Tree
n个节点,给定每个节点的子树(包括自己)的节点个数,每个节点如果有子节点必然大于等于2,求这样的数是否存在n (1 ≤ n ≤ 24).原创 2014-05-12 22:39:44 · 1660 阅读 · 0 评论 -
Codeforces Round #243 (Div. 2)——Sereja and Swaps
给定一个整数序列长度为n,可以至多交换k次,求最大连续区间和(1 ≤ n ≤ 200; 1 ≤ k ≤ 10)原创 2014-04-28 20:14:11 · 1367 阅读 · 0 评论 -
Cards
题目链接题目大意:a个x和b个o,对于连续的len个x,结果加上len * len;对于连续的len个o,结果减去len * len分析:原创 2014-03-06 18:05:18 · 1001 阅读 · 0 评论 -
Dima and Bacteria
题目链接不难,相同种类的距离是否为零用并查集判断。之后用floyd判断int ind[600], father[MAXN], dis[600][600];int number, kase, type, a, b, c;void init(){ REP(i, MAXN) father[i] = i;}int getfather(int n){原创 2014-03-07 15:47:01 · 1227 阅读 · 0 评论 -
Meet and Greet
题目链接题意:两个牛在一位坐标系上左右运动,速度相同,当两个牛相遇(之前不在一起,现在走到一起了)的时候会叫一声,现在问会叫几声分析:有两种方法,自己反思优略:第一种,以牛的运动状态发生变化的时间点为界限,不用多说,麻烦,效率高;另一种,以时间为界限,简单,效率低自己做题时候也没想就按照第一种方法上了,结果一个多小时就这样过去了。。。由于题目告诉了每个牛动时间单位数在1原创 2014-03-15 13:53:29 · 1660 阅读 · 0 评论 -
Codeforces Round #236 (Div. 2)__Trees in a Row
反思:上来方向就错了,仍然是对公式进行化简并找到了规律。诚然,这个方法是效率高,可是花费在代码和调试上的时间已经宣告了这个题目的失败题目的数据不大,是可以O(n^2)枚举的以后结题的方向:充分利用枚举!!!上来先考虑枚举,在考虑算法接下来完成一下最开始的思路:O(n)对于位置i和j,如果他们不用进行变化,那么需要满足的条件:ipt[j] - ipt[i] = goal * (j - i),我们化简一下可以得到:ipt[i] - goal * i =ipt[j] - goal * j,到这里规律就原创 2014-03-17 12:01:55 · 999 阅读 · 0 评论 -
Codeforces Round #236 (Div. 2)__Upgrading Array
题目链接思路:求出所有前缀区间的gcd,然后倒着处理。对于当前位置的前缀gcd,求一下这个数的f函数值,如果是负的,那么肯定去掉是对的。然后对之前的位置,gcd值要除以它之后的区间已经除过的数(不用依次去除,只用记录一下之前除的数是多少,然后计算到一个区间的时候,直接gcd除以这个数即可),然后依次向前处理直到结束即可分析:1.为什么要倒着处理呢,因为题目要求每次都是前缀操作,原创 2014-03-17 19:45:47 · 1424 阅读 · 0 评论 -
Coder-Strike 2014 - Round 1__Giving Awards
给定n个点,m个限制条件。每个限制条件表示为a,b,给定一个序列,使得b不在a后边分析:第一次看到这个题目就想到了拓扑排序。。。看来理解还不是很到位。拓扑排序给定的是一个偏序关系,而这个题目的关系不是偏序关系。题目的点数和边数都限定的十分完美。。本来想建立一个“可行图”,a->b表示b可以在a的后边。但是这样建边会超内存。。(看的题解的想法)考虑一下,加入当前已经排好了n个数原创 2014-04-28 20:04:12 · 1004 阅读 · 0 评论 -
Alternating Current
题目链接题目大意:+、-分别表示两根线,如题图所示。+、-分别表示对应的线在上边。问是否能解开思路:两个+或两个-相邻时,可以删除。一直这样下去,如果最后可以全部删掉,即可以解开,输出yes问题:输入是线型,相邻的符号不一定都在端点,如果在中间删除则超时(也比较复杂,应该用list)方法一:int index[MAXN], x = 0, len =原创 2014-02-25 09:59:08 · 1613 阅读 · 1 评论 -
Coder-Strike 2014 - Finals (online edition, Div. 2)——Bug in Code
给定n个数对(a, b),现在求有多少个数对(x, y)(1 <= x、y <= n)满足至少k个数对。x,y满足一个数对(a, b)当且仅当x、y出现在数对(a, b)中至少一次3 ≤ n ≤ 3·10^5原创 2014-04-28 20:33:59 · 1077 阅读 · 0 评论 -
Codeforces Round #238 (Div. 1)__Unusual Product
题目链接题意:对于一个矩阵,求出所有的行与对应的旋转90度的列(关于y = x对称的两排)对应数字的乘机的异或的异或。。。有点绕口,看图那么这个矩阵的值(加号表示异或): (1·1 + 1·0 + 1·1) + (0·1 + 1·1 + 1·0) + (1·1 + 0·1 + 0·0) = 0 + 1 + 1 = 0.现在有三种操作:某一行所有元素取反,某一列所有元素取反,求当前矩阵的值分析:直接暴力肯定不行。然后从特点入手:如果以行列为单位考虑问题,那么在翻转的过程中,单位内部发生了变化,所以原创 2014-03-23 15:50:45 · 1498 阅读 · 0 评论 -
2013ACM-ICPC杭州赛区全国邀请赛——X-Boxes
给定n个球(标号1 - n)和m个盒子(标号1 - m),现在要求:当一个球x放到了i号盒子中,如果有i + 1盒子,那么x * 2球必须在里边;如果有i - 1盒子,必然有x / 2球在里边。求能1号盒子中球数量最大值( 1≤n≤10 10000, 2≤k≤25 )原创 2014-05-06 21:59:33 · 1386 阅读 · 0 评论 -
Codeforces Round #230 (Div. 1)__Blocked Points_取值域对称性问题
acm中取值域有对称性问题的总结原创 2014-03-01 10:26:37 · 1658 阅读 · 0 评论 -
Codeforces Round #209 (Div. 2)——Prime Number
给一个素数x,和a1、a2……an,计算这个式子 的时候,化成了 这个形式, 且t等于 xa1 + a2 + ... + an,求s和t的最大公约数 (1 ≤ n ≤ 105, 2 ≤ x ≤ 109) ,结果对1000000007 取模原创 2014-05-15 11:18:38 · 965 阅读 · 0 评论 -
Laptop Chargers
n个电脑,若干个电源,q个询问一个整数x,表示充电器每秒能充进的电量(所有充电器一样)n行,每行三个数,c、t、r,分别表示电脑电池容量、满电用完需要的时间、当前电池剩余电量q行,每行一个数k,表示当前给k个电源原创 2014-05-14 15:49:25 · 1269 阅读 · 0 评论 -
Codeforces Round #245 (Div. 1)——Xor-tree
给一棵树n个节点,1为根节点。操作为,选定一个节点x,当前值取反,x的孙子,孙子的孙子。。。均取反现在告诉初始时每个点的值和最后每个点的目标值,求操作次数最少时需要选择那些节点原创 2014-05-12 11:59:07 · 1853 阅读 · 0 评论 -
Coder-Strike 2014 - Round 1__E-mail Addresses
给定一个字符串,判断合法串的个数。对于形如str1@str2.str3的串,满足:str1包括数字、字母、下划线且由字母开头;str2由字母、数字组成;str3由字母组成;三个串均非空,且是连续的串分析:题目没什么难度,就是处理起来比较麻烦。可以记录一下所有@和.出现的位置,然后判断符合条件的三个串有几个,乘积即可原创 2014-04-28 20:05:04 · 1330 阅读 · 0 评论 -
树的前序、中序、后序非递归遍历总结
参考自:这里前序遍历/* * 当一个指针从栈中弹出来时,此树的左子树已经遍历完成。 * p如果不为空,表示当前需要遍历p所指向的树(这棵树还没有开始遍历)。 */public List<Integer> preorderTraversal(TreeNode root) { List<Integer> result = new ArrayList<>(); Deque<Tr原创 2017-05-09 16:43:39 · 457 阅读 · 0 评论