想法题
HelloWorld10086
追随大神的脚步
展开
-
UVA 10795 A Different Task(递归 状态转移)
解析见刘汝佳的《算法竞赛入门经典训练指南》P27#include <cstdio>#include <cstring>typedef long long ll;const int N = 65;int n, start[N], finish[N];ll f(int p[],int i,int fin) { if(i == 0) return 0; if(p[原创 2015-02-08 12:31:54 · 480 阅读 · 0 评论 -
hdu 5386 Cover(暴力求解+想法题)
题意: 有两种操作: 操作L x y,把当前x,这一列全部置为y 操作H x y,把当前,这一行全部置为y。 现在给你n∗n n*n的初始矩阵,以及n∗n n*n的目标矩阵 现在给你m种操作(由以上两种操作构成),问怎么排序这m种操作,才能使得,初始矩阵,经由排序后的操作,构成目标矩阵。 输出排序方案。解析: 逆向思维, 枚举每个操作,然后判断该操作是不原创 2015-08-13 23:05:36 · 987 阅读 · 0 评论 -
hdu 5358 First One(想法题)
题意: 给你如下的公式,要求你算出这个表达式的值。 ∑ni=1∑nj=i(⌊log2S(i,j)⌋+1)×(i+j)∑_{i=1}^n∑_{j=i}^n(⌊log_2S(i,j)⌋+1)×(i+j) 其中S(i,j)表示 i 到 j 的和。解析: 由于(⌊log2S(i,j)⌋+1)(⌊log_2S(i,j)⌋+1)的和表示的是:S(i,j)S(i,j)这个数字,转化成二进制的原创 2015-08-07 19:05:36 · 496 阅读 · 0 评论 -
hdu 5249 KPI (动态中位数,两个set)
解析: 题意要求动态的求中位数,参考别人的方法是先开两个优先队列。 以及利用一个队列来模拟管道。 然后左边升序,右边降序,右边个数-左边个数>=1,然后右边询问的时候直接输出右边最小的,然后看看是左边还是右边的,把对应的那边的个数-1,如果发现(右边个数-左边个数>=1)这个条件不满足了,那么就权衡下,两个队列里面的元素处理下(左给右或者右给左),总的时间复杂度与数据无关,是O(n*原创 2015-06-09 09:09:16 · 947 阅读 · 0 评论 -
HDU 5229 - ZCC loves strings(博弈+概率)
题意 ZCC有N个字符串,他正在和Miss G.用这N个字符串玩一个小游戏。ZCC会从这N个串中等概率随机选两个字符串(不可以是同一个)。然后,ZCC和Miss G.轮流操作。Miss G.总是先操作的。在每轮中,操作者可以选择操作A或操作B。 操作A:在两个串中选择一个当前非空的串,然后在这个串的末尾删去一个字符。 操作B: 若当前两个串完全相同且非空,则可以使用这个操作。此时原创 2015-05-17 10:07:32 · 493 阅读 · 0 评论 -
UVa 769 Magic of David Copperfield(构造)
题意:一个魔术师表演魔术,给出n,表示说有n张牌,有序的排成n*n的矩阵,现在请上若干个观众来,从上一个人移动到的位置开始移动k步(2∗n≤k≤100002*n≤k≤10000),任意方向,并且不能和前面人的k一样大小。 然后魔术师每次可以抽点若干张观众走不到的牌,使得最后桌子上只有一张牌,问是否有这种可能。解析:棋盘问题,在国际象棋的棋盘上,每次走奇数步肯定落在与起始位置颜色不同的位置,这道题就原创 2015-05-06 09:03:38 · 563 阅读 · 0 评论 -
CodeChef SIGNWAVE (打表找规律)
题意: 给你两个函数 ai sin(2^i x), 0 ≤ x ≤ 2π, for i = 0, 1, …, S−1, bj cos(2^j x), 0 ≤ x ≤ 2π, for j = 0, 1, …, C−1, 现在题目给出 S,C,K 问你,存在多少个点使得,至少有K个函数穿过。解析: 为什么写这题呢,是因为想让自己记住,当实在想不出怎么做的时候可以,暴力打表找规原创 2015-03-15 19:13:55 · 831 阅读 · 0 评论 -
Hdu-5024 Wang Xifeng's Little Plot(记忆化搜索)
Wang Xifeng's Little PlotTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 71 Accepted Submission(s): 49Problem Description《Dre原创 2014-09-20 19:00:39 · 628 阅读 · 0 评论 -
CodeChef CDMU02(数组辅助查询)
题目大意:给你一个字符串p,然后给你q次的查询,每次查询一个单词以及对应区间[L,R]内的相应的字母,出现的次数。 解析:可以用一个数组dp[27][N]表示在当前位置该位置上的字符出现了几次。查询时就dp[ch-‘a’][R] - dp[ch-‘a’][L-1]进行询问。 总结:我最早的时候想成了用线段树来做,不过马上被我给否决了。因为这里只有查询没有修改。#include <cstdio>原创 2015-02-22 22:02:53 · 613 阅读 · 0 评论 -
UVA-10881 Piotr's Ants (想法题)
题目大意:一根长L厘米的木棍上有n只蚂蚁,每只蚂蚁有个开始的位置和爬行方向,速度为1.当两只蚂蚁相撞后,两者同时掉头继续爬行,求按输入顺序给出每只蚂蚁T秒后的位置后朝向。思路:1.每只蚂蚁相撞后同时掉头可以看做对穿而过,关键的问题就在于求位置的变化。2.因为当两只蚂蚁相撞后,两者同时掉头继续爬行,所以最终所有的蚂蚁相对位置并没有变化,改变的只是朝向。#include #i原创 2015-02-04 21:13:23 · 692 阅读 · 0 评论 -
Codeforces 363C. Fixing Typos
题意:告诉你一个字符串,使得字符串满足下面条件:1.一个串若结尾的两个字符相同,则这个串后面的两个字符不能相同。2.不存在连续相同的三个字符。求删除最少的字符,使得字符串满足上面条件。解析:直接用栈来求解,先往栈内压人前两个字母,因为前面的尽量不要删除,删除中间的,这样可以减少删除字母的次数。依题意,有两种情况,当前字母无法入栈1. 如果当前的字原创 2014-10-20 15:27:09 · 824 阅读 · 0 评论 -
UVA 11384 Help is needed for Dexter(找规律)
题意: 给定正整数n,你的任务是用最少的操作次数把序列1, 2, …, n中的所有数都变成0。每次操作可从序列中选择一个或多个整数,同时减去一个相同的正整数。比如,1,2,3可以把2和3同时减小2,得到1,0,1。 通过对题目的分析我们可以考虑下一个问题,如果有n个数字,但是这些数字只是1、2、3的情况,根据游戏的规则,他们和问题中n=3的可以说是等价的。你可以试下,所以说为了是问题简单,原创 2015-02-08 12:25:12 · 503 阅读 · 0 评论 -
hdu 5414 CRB and String(想法题)
题意: 给你两个字符串s和t,你可以在字符串s中任意选一个字符c,在该字符c后插入一个字符d(d!=c),问经过多次此操作,能否将字符串s转化成字符串t。解析: 不要想太复杂了,分情况讨论清楚就好了。 1. 如果|s|>|t||s| > |t|,那么无论怎么组合都是无法构成t的。 2. 如果s[0]!=t[0]s[0] != t[0],无论怎么组合,也都是无法构成t的。原创 2015-08-21 19:21:28 · 864 阅读 · 0 评论