随笔分类 -  ACM

codeforces 484C Strange Sorting Codeforces Round #276 (Div. 1) C
摘要:思路:首先 他是对1到k 元素做一次变换,然后对2到k+1个元素做一次变化。。。。依次做完。 如果我们对1到k个元素做完一次变换后,把整个数组循环左移一个。那么第二次还是对1 到 k个元素做和第一次一样的变换,再左移,再对1 到 k个元素做和第一次一样的变换,依次做完n-k+1即可。 假设题... 阅读全文
posted @ 2014-11-09 15:09 L_Ecry 阅读(435) 评论(0) 推荐(0)
POJ 3415 Common Substrings 后缀数组+并查集
摘要:后缀数组,看到网上很多题解都是单调栈,这里提供一个不是单调栈的做法,首先将两个串 连接起来求height 求完之后按height值从大往小合并。 height值代表的是 sa[i]和sa[i-1] 的公共前缀长度,那么每次合并就是合并 i和i-1 那么在合并小的时候公共前缀更大的肯定已经都合并在一... 阅读全文
posted @ 2014-11-04 09:42 L_Ecry 阅读(261) 评论(0) 推荐(0)
HDU 5010 Get the Nut(2014 ACM/ICPC Asia Regional Xi'an Online)
摘要:思路:广搜, 因为空格加上动物最多只有32个那么对这32个进行编号,就能可以用一个数字来表示状态了,因为只有 ‘P’ 'S' 'M' '.' 那么就可以用4进制刚好可以用64位表示。接下去每次就是模拟了。 注意: ‘S’ 不是只有一个。 一个东西如果不是'P'在动的话要先判断周围有没有‘P... 阅读全文
posted @ 2014-09-17 09:31 L_Ecry 阅读(961) 评论(0) 推荐(0)
ZOJ 3817Chinese Knot(The 2014 ACM-ICPC Asia Mudanjiang Regional First Round)
摘要:思路: 将4个串每个串都反向这样得到新的四个串一共8个串,对于母串每个位置检测这个串能不能放进去,hs或者后缀数组都可以。然后dp[i][j] (0#include#include#include#include#include#include#include#include#include#inc... 阅读全文
posted @ 2014-09-08 10:17 L_Ecry 阅读(368) 评论(0) 推荐(0)
HDU 4946 Area of Mushroom(2014 Multi-University Training Contest 8)
摘要:思路: 只有速度最大才有可能为1,速度不是最大肯定为0,那么就是 只需要操作那些速度最大的点,这些点求一个凸包,判断一下是不是在凸包边上即可。有几个需要注意的地方:1.最大速度如果为0 那么肯定所有都不行。2.如果最大速度有重点那么 也都不行。3.有些求凸包模板求出来的凸包可能有重点,要去重再求。... 阅读全文
posted @ 2014-08-14 22:45 L_Ecry 阅读(233) 评论(0) 推荐(0)
HDU 4951 Multiplication table(2014 Multi-University Training Contest 8)
摘要:思路 如果进制为p 那么当x#include#include#include#include#include using namespace std;int ans[510];bool bo[510];int a[510][1020];inline int ReadInt()//优化接受int数... 阅读全文
posted @ 2014-08-14 22:08 L_Ecry 阅读(312) 评论(0) 推荐(0)
HDU 4938 Seeing People(2014 Multi-University Training Contest 7)
摘要:思路:根据出发时间把点往速度反方向移动 t*v的 的距离这样就可以当成 全部点一起出发,再把y轴上的点固定不动相当于x轴的点向(-v2,v1)方向移动 。可以把所有点映射到x轴上进行统计即可(要记住同一类型的点事不能相互看到的。因为出发时间不同,就算在x轴上有相同映射点也一样)任务就是 统计每个点能... 阅读全文
posted @ 2014-08-14 10:02 L_Ecry 阅读(463) 评论(0) 推荐(0)
HDU 4944 FSF’s game(2014 Multi-University Training Contest 7)
摘要:思路: ans[n]= ans[n-1] + { (n,1),(n,2).....(n,n)} 现在任务 是 计算 { (n,1),(n,2).....(n,n)}(k=n的任意因子) 很明显 所有能取的k均为n的因子可以 sqrt(n) 内枚举。 若 p 为n的因子 那么 d(n,p) =p*... 阅读全文
posted @ 2014-08-12 23:57 L_Ecry 阅读(297) 评论(0) 推荐(0)
HDU 4937 Lucky Number(2014 Multi-University Training Contest 7)
摘要:思路:先枚举 a*bas +b = n 求出 bas 在sqrt(n)到n的 (bas>a&&bas>b) 再枚举 a*bas*bas+b*bas+c =n 求出bas 在 n^(1/3) 到sqrt(n)的 (bas >a&&bas>b&&bas>c) 上面 a b c 均只有 3 4 ... 阅读全文
posted @ 2014-08-12 20:47 L_Ecry 阅读(309) 评论(0) 推荐(0)
HDU 4941 Magical Forest(2014 Multi-University Training Contest 7)
摘要:思路:将行列离散化,那么就可以用vector 存下10W个点 ,对于交换操作 只需要将行列独立分开标记就行 。r[i] 表示第 i 行存的是 原先的哪行 c[j] 表示 第 j 列 存的是原先的哪列。 查询只需要一个二分即可。#include #include#include#includ... 阅读全文
posted @ 2014-08-12 19:50 L_Ecry 阅读(321) 评论(0) 推荐(0)
HDU 4939 Stupid Tower Defense (2014 Multi-University Training Contest 7)
摘要:思路:首先红色肯定要放在最后面。前面蓝色和绿色dp求解。dp[i][j] 表示前面(i+j) 个 有 i 个蓝色塔 j个绿色塔 能造成最大伤害。//============================================================================... 阅读全文
posted @ 2014-08-12 18:47 L_Ecry 阅读(308) 评论(0) 推荐(0)
HDU 4940 Destroy Transportation system(2014 Multi-University Training Contest 7)
摘要:思路:无源汇有上下界可行流判定, 原来每条边转化成 下界为D 上界为 D+B ,判断是否存在可行流即可。为什么呢? 如果存在可行流 那么说明对于任意的 S 集合流出的肯定等于 流入的, 流出的计算的 X 肯定小于等于这个流量(X是下界之和), 计算出来的Y (上界之和)肯定大于等于 这个流量 肯定... 阅读全文
posted @ 2014-08-12 18:15 L_Ecry 阅读(400) 评论(0) 推荐(0)
codeforces 451E Devu and Flowers
摘要:题意:有n个瓶子每个瓶子有 f【i】 支相同的颜色的花(不同瓶子颜色不同,相同瓶子花视为相同) 问要取出s支花有多少种不同方案。思路: 如果每个瓶子的花有无穷多。那么这个问题可以转化为 s支花分到n个瓶子有多少种方案 用隔板法就能解决 C(s+n-1,n-1) 。有限制之后我们可以 用 没限制的去减... 阅读全文
posted @ 2014-08-08 10:21 L_Ecry 阅读(408) 评论(0) 推荐(0)
HDU 4913 Least common multiple(2014 Multi-University Training Contest 5)
摘要:题意:求所有自己的最小公倍数的和。 该集合是 2^ai * 3^bi思路:线段树。 线段树中存的是 【3^b * f(b)】 f(b)表示 因子3 的最小公倍数3的部分 为 3^b的个数 那么从小到大枚举a 对于当前的 ab , 如果之前的b小于当前的b 那么最小公倍数就为 (2^a) * (3^... 阅读全文
posted @ 2014-08-06 19:07 L_Ecry 阅读(541) 评论(0) 推荐(0)
CodeForces 360E Levko and Game(Codeforces Round #210 (Div. 1))
摘要:题意:有一些无向边m条权值是给定的k条权值在[l,r]区间可以由你来定,一个点s1 出发一个从s2出发 问s1 出发的能不能先打到f思路:最短路。首先检测能不能赢 在更新的时候 如果对于一条边 a->b 如果dis1[a] #include#include#include#include #incl... 阅读全文
posted @ 2014-08-03 23:27 L_Ecry 阅读(421) 评论(0) 推荐(0)
HDU 2871 Memory Control
摘要:一共4种操作其中用线段树 区间合并,来维护连续空的长度,和找出那个位置。其他用vector维护即可#include#include#include#include#include #include#define lson ie;int lsum[N*4],rsum[N*4],msum[N*4];in... 阅读全文
posted @ 2014-08-03 21:15 L_Ecry 阅读(159) 评论(0) 推荐(0)
HDU 4898 The Revenge of the Princess’ Knight ( 2014 Multi-University Training Contest 4 )
摘要:题意:给定一个环形字符串,让他把它分成k份,使得最大的字典序 最小。思路:二分答案,首先很明显答案所有可能是 n*n种 排序可以先求出最长公共前缀,这样比较就只需要比较公共前缀的下一位就能比较出两种答案的字典序大小,这里公共前缀我用 (2*n)*(2*n) DP 求出 。(也可用后缀数组)。接下来就... 阅读全文
posted @ 2014-08-03 14:58 L_Ecry 阅读(387) 评论(0) 推荐(0)
codeforces 451D Count Good Substrings
摘要:题意:给定一个字符串,求有多少个奇数子串和多少偶数子串为 “回文串” 这边回文串很特殊之含有 ab 两种字母 而且 相邻的字母相同则消去一个 一直到不存在相邻的相同。思路: 在这种串中 ,消到最后 一定是 abababababa。。。 或者 bababababab。。。 那么 只要头尾一样 那么这个... 阅读全文
posted @ 2014-08-02 20:04 L_Ecry 阅读(162) 评论(0) 推荐(0)
HDU 3397 Sequence operation
摘要:题目:下列操作Change operations:0 a b change all characters into '0's in [a , b]1 a b change all characters into '1's in [a , b]2 a b change all '0's into... 阅读全文
posted @ 2014-08-02 12:32 L_Ecry 阅读(143) 评论(0) 推荐(0)
HDU 3308 LCIS
摘要:题意:U A B: 把第A个数变成BQ A B: 输出【A,B】最长连续上升子序列(注意是连续 相当于子串)思路:单点更新 ,区间合并几下左边开头最小 和右边结束最大的两个数即可。#include#include#include#include#include #define lson (iy?x:... 阅读全文
posted @ 2014-08-02 12:28 L_Ecry 阅读(184) 评论(0) 推荐(0)