acm题解
文章平均质量分 75
请_坚持思考
思考是你的拥有唯一的能力 请---坚持思考
展开
-
UVa227 and acm/icpc world finals 1993 谜题
a UVa227 and acm/icpc world finals 1993 谜题原创 2016-01-08 17:53:23 · 859 阅读 · 0 评论 -
hdu2955 01背包 状态转化
hdu2955 01背包 状态转化一眼看过去就是01背包 但是如果按照普通状态转移的话 无法存储 于是就想到换状态所有银行的钱为状态 存储不被抓的概率 设盗取第i家银行的概率是Pi, 盗取第i家银行逃跑的概率是Ri 则 Pi = 1 - Ri 且盗取多家(i家)银行被抓的概率 PPi = 1 - (R1*R2*R3*...*Ri), 这中原创 2016-10-03 13:44:32 · 286 阅读 · 0 评论 -
康托展开及其逆运算 详解
康托展开及其逆运算 详解详细看这里 点击打开链接康托展开是什么?定义:X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0!ai为整数,并且0简单点说就是,判断这个数在其各个数字全排列中从小到大排第几位。比如 132,在1、2、3的全排列中排第2位。康托展开有啥用呢?转载 2016-10-18 17:15:11 · 410 阅读 · 0 评论 -
poj 1078 记忆话搜索
poj 1078 记忆话搜索英语是个大坑啊 卧槽 英语渣做acm光看题目就要花去半个小时 最关键的是还看错 我把这道题看成可以走K个格子理解为可以转弯了 其实是只能水平走 但是我觉得转弯也可以做 也是dp 记忆化搜索 贴一段自己开始写的 #include #include #include#define Min(a,b) a>b?b:a#define原创 2016-10-05 17:47:21 · 366 阅读 · 0 评论 -
hdu1506 经典dp
hdu1506 经典dp刚开始刷dp的题,看到这题,就知道是dp题,因为我就是因为这是dp题才来做的,我知道这是dp题,然后就没了,一脸懵逼啊 做了几道背包dp,一做不是背包题就不会做了 ,只知道设f[i],f[i]代表的意思都是错的,在做这种题时我只知道直接用状态直接求解答案,然而。。。。开始时连问题都没有搞清楚,开始时应该搞清楚解题步骤 因该清晰去推倒答案 一步一步的解 比如原创 2016-10-05 20:08:07 · 526 阅读 · 0 评论 -
hdu1505 City Game
hdu1506 City Game1505的扩展 这个就不哆嗦了 知道了1505怎么做 那这道题也就出来了输入时注意一些 #include#include#include#define LL long long#define Max(a,b) a>b?a:busing namespace std;const int N=1005;int a[N][N],l[N][N原创 2016-10-05 21:49:54 · 195 阅读 · 0 评论 -
poj 1050 To the Max
poj 1050 To the Max这道题用到的是最大连续和 扩展到二维 开始时没想到是最大连续和 #include#includeint a[101][101],n,temp[101];int solve()//最大子序列和函数{ int i,sum=0,max=0; for(i=0;i<n;i++) { sum+=temp[i];转载 2016-10-06 13:10:27 · 204 阅读 · 0 评论 -
poj 2059 龟兔赛跑 DP
poj 2059 龟兔赛跑 DP 简单dp 思路很简单 一开始想的时候就想出了 以f[i]为最后一个站到达时间最短 确定了这种思路是正确的 然后写出了转移方程 f[i]=f[i-1]+min(要加油的时间,不加油的时间) 这里前面的c不归0 但是 但是 但是 我没写出代码来 这种转移方程代码好难写啊 后面百度题解 发现转移方程不是我这么写的 f[i]=min(f[j]原创 2016-10-06 17:59:57 · 302 阅读 · 0 评论 -
hdu3974 线段树 编号的处理 dfs 加 lazy思想
hdu3974 线段树 编号的处理 dfs这道题想了大概一天 一直没想出来怎么对节点编号 后面百度了 看到dfs 瞬间开朗 利用dfs的时间戳 对节点编号 这样保证了 每个父节点的子节点 都在父节点所代表的区间内这里 用了以点保存区间的方式 开始的时候没有用lazy思想 直接用的setv[x]存储set的点 然后一直错后面想通了 如果我那样做的话 有可能之前set 的点原创 2016-10-29 13:27:31 · 235 阅读 · 0 评论 -
搜索进阶 hdu2181 回溯
搜索进阶 hdu2181最近在训练搜索题 简单的搜索题 已经基本大概的掌握了 现在做搜索进阶 hdu2181 做这道题 一眼思路就是广搜 考虑过迭代加深搜索或者dfs 如果他不要求全部输出 则这个就可以用 但是不是这个题还要求每个城市经过一次回到原点前面是废话 只是记录自己的思路而已我他妈在干嘛 就是回溯啊 卧槽这么简单的题都想错 在想什么啊 现在考原创 2016-10-19 16:56:03 · 279 阅读 · 0 评论 -
01背包 完全背包 多重背包 实现
01背包 完全背包 多重背包 实现 01背包//O(NV)f[0][0 ~ V] = 0;for(int i = 1; i <= n; ++i) for(int j = 0; j <= V; ++j) if(j < w[i]) f[i][j] = f[i - 1][j]; else f[i][j] = max(f[i - 1][j], f[i -原创 2016-10-06 21:23:34 · 274 阅读 · 0 评论 -
hdu4614 Vases and Flowers 二分
hdu4614 Vases and Flowers 二分这道题用数据结构为优化时间效率 用二分来分别找出左边界答案 和右边界答案 这是属于线段树数据结构与其他算法的结合使用 开始做的时候 还死死的在线段树上做文章。。。。问题是 在以A为起点的区间 第一个可以插花的 和最后一个可以插花的地方 按照正常思路的话可以想到二分 可是与线段树扯上了 就只能想到在线段树上处理 看来这种结合思想原创 2016-10-29 21:10:40 · 264 阅读 · 0 评论 -
线段树处理 poj2892 hdu1540
线段树处理 poj2892 hdu1540这道题想了很久 没有想出来思路 后面上网找了题解 利用区间左端点连续 和右端点连续 处理了区间的连续sum数组存储连续村庄个数,lsum存储区间内从左起连续个数,rsum存储区间内从右起连续个数#include #include #include #include using namespace std ;#define INF原创 2016-10-26 21:16:10 · 220 阅读 · 0 评论 -
poj2528 线段数组 离散化
poj2528 线段数组 离散化#include #include #include using namespace std;#define lson l , m , rt << 1#define rson m + 1 , r , rt << 1 | 1const int maxn = 11111;bool hash[maxn];int li[maxn] , ri[maxn];原创 2016-10-25 22:30:55 · 665 阅读 · 0 评论 -
算法竞赛入门经典第二版的 纵横之谜的答案 uva 232
uva 232 填字游戏是由一个矩形网格的黑色和白色的正方形和两列defi定义(或说明)。一个列表的fi定义是“词”是写左在排在白方块权和其他列表的话被写下来的白色正方形的柱子。(总之是一个序列的字母。)解决字谜游戏,一个写在网格中的白色方块去fi定义相应的单词。德fi定义对应的矩形网格的连续整数意味着“合格”的白色方块。左边或以上的白色方块,立即向左或以上,白色正方形,没有任何一方立即向左或以上原创 2016-01-09 14:41:01 · 581 阅读 · 0 评论 -
DNA序列 uva1368
题目描述 DNA (Deoxyribonucleic Acid) is the molecule which contains the genetic instructions. It consists of four different nucleotides, namely Adenine, Thymine, Guanine, and Cytosine as shown in Figur原创 2016-01-09 19:11:08 · 348 阅读 · 0 评论 -
uva 10340 子序列
You have devised a new encryption technique which encodes a message by inserting between its characters randomly generated strings in a clever way. Because of pending patent issues we will not discuss原创 2016-01-09 20:27:32 · 476 阅读 · 0 评论 -
uva 1587 box
Ivan works at a factory that produces heavy machinery. He has a simple job — he knocks up wooden boxes of different sizes to pack machinery for delivery to the customers. Each box is a rectangular para原创 2016-01-10 15:07:52 · 513 阅读 · 0 评论 -
hdu1878欧拉回路 并查集学习 欧拉路学习
hdu1878欧拉回路 并查集学习 欧拉路学习 本来是学习欧拉路的 但在做题的时候发现自己对并查集掌握的不是很好 现在用这道题来写下自己对并查集,和欧拉路的一些思路首先以hdu1878 为列子写下这道题是纯的欧拉回路 直接写就是了 首先介绍下欧拉路的一些定义与性质 以下来自于这里欧拉通路 欧拉回路的区别 及其判定在做一些图类时经常要用到欧拉原创 2016-10-09 15:07:42 · 415 阅读 · 0 评论 -
Fleury算法求欧拉路径
Fleury算法求欧拉路径列出一些有关欧拉的题混合图欧拉回路 poj1637,zju1992,hdu34721HDU 3018 Ant Trip2POJ 1041 John's trip3 POJ 1386 Play on Words4 POJ 2230 Watch Cow5 POJ 2513 Colored Sticks6 POJ 23原创 2016-10-09 16:44:37 · 1991 阅读 · 0 评论 -
HDU 3018 Ant Trip 欧拉路 并查集
HDU 3018 Ant Trip 欧拉路 并查集 开始的时候没有看清题 以为是每个联通图判断欧拉路就行了 #include #include #include #include #include #include using namespace std;//hdu3018 对于联通的图判断奇数度数的个数 如果==0 就+1 就行了 否者 加奇数个数 #defi原创 2016-10-09 18:53:12 · 261 阅读 · 0 评论 -
集合的二进制表示
一些不大的数的集合,可以用二进制的形式来表示,注意这里的集合没有重复元素。集合的存储方法是用一串二进制的数存,第i位表示i这个数是否在集合中。设集合中最大的数不超过(1集合的运算因为是二进制表示,A|B、A&B、A^B、分别对应集合的并,交和对称差。子集 元素的输出从1到n枚举,如果在s中就输出,代码: void print_element(int n,int转载 2016-10-10 21:52:10 · 1368 阅读 · 0 评论 -
poj3278 bfs
poj3278 bfs 这道题是很经典的bfs题 比较简单 开始想的时候 思路并没有很清晰 就开始敲代码 导致后面速度放慢 出错调试也慢 没有很快做出来 看来bfs还是不是很熟练#include #include #include #includeconst int INF = 0x3f3f3f3f; using namespace std;int maxn=100原创 2016-10-12 15:06:09 · 240 阅读 · 0 评论 -
子集生成的三种方法
子集生成的三种方法最近遇到一个子集生成的题 没有很快的写出来 所以在把之前的过的子集生成方法在复习一边 第一种 增量构造法 在lrj紫书中 这是放到第一个讲解的 。。。。。。顾名思义 增量构造法 就是按照递增顺序就行构造子集 防止子集的重复 如 集合{1,2} 就不会输出{1,2} 和{2,1}这样重复的子集了 在解答书中生成 2^n方个子集 直接看原创 2016-10-15 11:19:30 · 5308 阅读 · 0 评论 -
poj3984 输出路径
poj3984 输出路径 第一次做输出路径的搜索题 这道题没有想到一个好办法 手写队列 然后记录前一个在队列中的位置 居然没有想到这个办法#include#include#define N 5using namespace std;struct note{ int x,y,pre; //存放坐标,前一个节点在队列中的位置} que[100];in原创 2016-10-15 17:49:13 · 260 阅读 · 0 评论 -
01背包 第k优解
求次优解、第K 优解#include #include #include using namespace std;struct Node{ int price; int val;} node[1005];int main(){ int t; scanf("%d",&t); while(t--) { int n,原创 2016-10-07 20:13:00 · 368 阅读 · 0 评论