11 2017 档案
摘要:Permutation UVA - 11525 看康托展开 题目给出的式子(n=s[1]*(k-1)!+s[2]*(k-2)!+...+s[k]*0!)非常像逆康托展开(将n个数的所有排列按字典序排序,并将所有排列编号(从0开始),给出排列的编号得到对应排列)用到的式子。可以想到用逆康托展开的方法。
阅读全文
摘要:由于有相同的数,每个节点加一个权值表示此数出现的次数 本来想写成相同的数分成多个节点放的,写了一会儿各种细节,炸了 1 #include<cstdio> 2 #include<cstdlib> 3 #include<ctime> 4 #include<algorithm> 5 using names
阅读全文
摘要:Jumping Jack CodeForces - 11B 就是一个贪心。 基本思路: 正负没有关系,先取绝对值。 首先跳过头,然后考虑怎么回来。 设超过头的步数为kk。如果kk为偶数,那么直接在前面跳过来的步数中选一个kk/2的步数,改成反着跳即可,不需要额外步数。 如果kk为奇数: 显然如果只把
阅读全文
摘要:Increasing Sequence CodeForces - 11A 很简单的贪心。由于不能减少元素,只能增加,过程只能是从左到右一个个看过去,看到一个小于等于左边的数的数就把它加到比左边大,并记录加的次数。 错误记录: 但是很容易错...以前错了4次..过几个月来再做还是不能1A... 比如下
阅读全文
摘要:Cunning Gena CodeForces - 417D 题意 先将小伙伴按需要的监视器数量排序。然后ans[i][j]表示前i个小伙伴完成j集合内题目所需最少钱。那么按顺序枚举小伙伴,用ans[i-1][j]更新ans[i][j]和ans[i][j | 第i个小伙伴能完成题目的集合](更新后一
阅读全文
摘要:Hie with the Pie POJ - 3311 这题是类TSP,与TSP区别是可以重复经过节点,只需floyed预处理出指定两点间(走过任意数量点)的最短路即可。
阅读全文
摘要:ACboy needs your help HDU - 1712 ans[i][j]表示前i门课共花j时间最大收益。对于第i门课,可以花k(0<=k<=j)时间,那么之前i-1门课共花j-k时间。 错误记录: 21行一个0写成1 错误记录: 21行一个0写成1
阅读全文
摘要:这题好久前就做过了...结果过了几个月还是不会...题解也看不懂...不过参考题解的一部分倒是懂了。 首先把每个人当做一个节点,从每个人向他要告诉的那个人连边,产生一张有向图。显然,一个人如果不在环上,那么就永远不可能听到自己的信息;一个人如果在环上,那么就会在进行“包含这个点的长度最小的环的长度"
阅读全文
摘要:The Fewest Coins POJ - 3260 完全背包+多重背包。基本思路是先通过背包分开求出"付出"指定数量钱和"找"指定数量钱时用的硬币数量最小值,然后枚举找的钱,那么付出的钱也随之确定,对于每个枚举出的找的钱可以得到一个答案,那么枚举所有可能的找的钱取答案的最大值即可。 这里有一个对
阅读全文
摘要:Triangular Pastures POJ - 1948 sum表示木条的总长。a[i]表示第i根木条长度。ans[i][j][k]表示用前i条木条,摆成两条长度分别为j和k的边是否可能。 那么ans[i][j][k]=ans[i-1][j-a[i]][k] || ans[i-1][j][k-a
阅读全文
摘要:Apple Tree POJ - 2486 题目大意:一棵点带权有根树,根节点为1。从根节点出发,走k步,求能收集的最大权值和。 树形dp。复杂度可能是O(玄学),不会超过$O(nk^2)$。(反正这题不卡这个,考思想)参考 ans[i][j][0]表示i点以下共走j步,不回来,可能收集到最大的权值
阅读全文
摘要:A Simple Task CodeForces - 11D 题意:输出一个无向图的简单环数量。简单环指无重复边的环。保证图无重边自环。 ans[i][j]表示"包含i中的点,以i中第一个点为起点,以j为终点"的路径条数。 对于某个i,枚举当前终点j(显然不能是首个点),产生一个状态。再枚举上一次终
阅读全文
摘要:Ignatius and the Princess III HDU - 1028 整数划分问题 假的dp(复杂度不对) 1 #include<cstdio> 2 #include<cstring> 3 typedef long long LL; 4 LL ans[122][122]; 5 LL n,
阅读全文
摘要:Sequence POJ - 2442 口胡一个结论:就是前i行产生的最小的n个和,一定可以在"前i-1行产生的最小n个和,每一个加上这一行的任意一个数,产生的n2个数"中找到。(其实显然是对的) 因此每次只需要求两个有n个数的序列每个序列中选一个产生的所有和中最小n个。方法就是先将两个序列排序,这
阅读全文
摘要:Tree Recovery POJ - 2255 根据树的前序遍历和中序遍历还原后序遍历。 (偷懒用了stl的find)
阅读全文
摘要:Mondriaan's Dream POJ - 2411 可以用状压dp,但是要打一下表。暴力枚举行、这一行的状态、上一行的状态,判断如果上一行的状态能转移到这一行的状态就转移。 状态定义:ans[i][S]表示i行前已经全部填满,i行已经填上的列为集合S。如果有竖着的,全部当做用这一行的去补满上一
阅读全文
摘要:How many Fibs? POJ - 2413 高精模板
阅读全文
摘要:Tempter of the Bone HDU - 1010 dfs。 几个剪枝: 1.如果当前所用时间加上当前位置到目标的曼哈顿距离之和大于目标时间,那么显然无论如何不能完成。剪掉 2.在搜索前判一下,如果出发位置到目标的曼哈顿距离与目标时间的奇偶性不同,那么显然无论如何不能完成。剪掉 错误原因:
阅读全文
摘要:树上最远点对(树的直径) 做法1:树形dp 最长路一定是经过树上的某一个节点的。 因此: an1[i],an2[i]分别表示一个点向下的最长链和次长链,次长链不存在就设为0;这两者很容易求 an3[i]表示i为根的子树中的答案;an3[u]=max(max{an3[v]}(v是u的子节点),an1[
阅读全文
摘要:Eight POJ - 1077 HDU - 1043 八数码问题。用hash(康托展开)判重 bfs(TLE) 从目标状态出发,一次bfs打出所有输入对应结果的表(172ms) 以下的IDA*和A*都要用逆序数特判无解的情况,因为无解的时候IDA*直接无限制搜,A*遍历所有解空间,效率很低。 所谓
阅读全文
摘要:Race to 1 Again LightOJ - 1038 题意:有一个数字D,每次把D变为它的一个因数(变到所有因数的概率相等,可能是本身),变到1后停止。求对于某个初始的D变到1的期望步数。 x的因子有p[1],...,p[k] 那么ans[x]=1/k*(ans[p[1]]+1)+...+1
阅读全文
摘要:Coins HDU - 2844 POJ - 1742 多重背包可行性 当做一般多重背包,二进制优化 二进制优化+bitset压位 可以转换成完全背包 http://blog.csdn.net/ac_hell/article/details/51394432 (仅做记录)④对于朴素的方法,这个算法每
阅读全文
摘要:先把主件拆开。例如两个附件的物品,拆成只买主件、主+附1、主+附2、主+附1+附2这四种对于这个物品的选法。 然后跑类似普通背包的,ans[i][j]表示前i个物品用j的钱的最大收益。如果当前物品为附件则ans[i]直接从ans[i-1]复制,直接忽略当前物品。否则枚举当前物品的所有选法,ans[i
阅读全文
摘要:Minimal Ratio Tree HDU - 2489 暴力枚举点,然后跑最小生成树得到这些点时的最小边权之和。 由于枚举的时候本来就是按照字典序的,不需要额外判。 错误原因:要求输出的结尾不能有空格。
阅读全文
摘要:Tian Ji -- The Horse Racing HDU - 1052 (有平局的田忌赛马,田忌赢一次得200块,输一次输掉200块,平局不得钱不输钱,要使得田忌得到最多(如果只能输就输的最少)) 首先,实际是要求两人马的配对关系。那么不妨设齐王是按从快到慢的顺序出马的。因此先将齐王的马排序。
阅读全文
摘要:Monkey Banana Problem LightOJ - 1004 错误记录: 1.数组开小2.每组数据数组没有清空 错误记录: 1.数组开小2.每组数据数组没有清空
阅读全文
摘要:https://vjudge.net/problem/LightOJ-1005 题意:在n*n的矩形上放k个车,使得它们不能互相攻击,求方案数。 ans[i][j]表示在i*i的矩形上放j个车的方案数。 那么,首先要在(i-1)*(i-1)的矩形上放j-1个,再在比(i-1)*(i-1)多出来的一行
阅读全文
摘要:整篇都是仅做记录... 蓝书上的板子。水平序,单调栈。先求下凸包,再求上凸包。叉积的作用是判定向量的位置关系。 48行的作用是在求上凸包的时候不至于去删下凸包中的点。上凸包中第一个点被认为是t1。 另:如果不希望在凸包边上有输入点(指多点共线且在凸包上时都当做在凸包上的,而不是像这个一样仅保留第一个
阅读全文
摘要:https://www.luogu.org/problemnew/show/3382 (dcmp是个好东西) 先增后减求极大。 如果f(lm)大于f(rm),那么答案在[l,rm]之间 否则答案在[lm,r]之间 (在这里,等于无所谓) 如果先减后增求极小,则大于和小于交换。(如果忘了,画张函数图像
阅读全文
摘要:https://www.luogu.org/problemnew/show/1438 lazytag记录一下某个区间需要加的等差数列的首项和公差。由于区间长度已知(r-l+1),仅由此就可以推出这个区间每一个数要加上的数。 可以发现两个等差数列每一项相加,得到的还是等差数列,而且是首项和公差分别相加
阅读全文
摘要:水题,扩展欧几里得求解即可 错误原因:扩展欧几里得写炸
阅读全文
摘要:题目 首先,可以确定的是这题的做法就是暴力枚举x,然后去计算方程左边与右边是否相等。 但是noip的D2T3怎么会真的这么简单呢?卡常卡的真是熟练 你需要一些优化方法。 首先可以用秦九韶公式优化一下方程左边的计算方法: 左边=(((..(a[n]*x)+a[n-1])*x+..+a[1])*x+a[
阅读全文
摘要:题面 先研究第一个问题:如何使得"距离"最小。 可以发现题意就是要求一种合适的两组数间的配对方式,使得∑(ai-bi)^2最小。 我口胡了一个结论...就是最好的配对方式,就是两组数分别排好序后,将位置相同的两个元素配对。 当然,可以发现这个结论是对的:https://www.luogu.org/w
阅读全文
摘要:如果$ax{\equiv}1(mod\,p)$,且a与p互质(gcd(a,p)=1),则称a关于模p的乘法逆元为x。(不互质则乘法逆元不存在) 基本的应用场景:有一个问题,在求解过程中有除法,答案很大,要求最终答案对某数p取模。显然,由于除法的出现,每一次运算之后取模是行不通的。(比如:求1*7/2
阅读全文
摘要:欧拉定理: 简单多面体的顶点数V、棱数E及面数F间有关系有著名的欧拉公式:V-E+F=2。 设G为任意的连通的平面图,则v-e+f=2,v是G的顶点数,e是G的边数,f是G的面数。(引) 证明(?) 这题的做法就是模拟画线的过程,统计出画每一条线时与之前所有线的交点,将所有交点记录下来,将每一个顶点
阅读全文
摘要:错误记录:21,32,41行goto写成continue导致没有读入x就continue了导致无限等待输入导致TLE
阅读全文

浙公网安备 33010602011771号