上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 56 下一页
摘要: View Code 1 #include <iostream> 2 #include <stdio.h> 3 #include <string> 4 #include <math.h> 5 #include <algorithm> 6 using namespace std; 7 #define DEBUG 8 int min(int a, int b){ 9 return a<b?a:b;10 }11 int main(){12 #ifndef DEBUG13 freopen("in.txt", " 阅读全文
posted @ 2013-03-03 18:11 ChrisZZ 阅读(160) 评论(0) 推荐(0)
摘要: 题意:给出一个单词text,仅仅由小写字母组成,并给出若干个单词word[i],用word[i]去拼接出text,问有多少种方法分析:典型的Trie的题目。第一次看训练指南的时候套用刘汝佳的模板结果wa(显然我不会用),后来发现很多人都是用指针写的,大部分Trie的题目用指针就能ac,索性自己写了一份使用指针的Trie的模板代码:View Code 1 #include <string.h> 2 #include <stdio.h> 3 #include <iostream> 4 #include <vector> 5 using namespa 阅读全文
posted @ 2013-02-17 11:21 ChrisZZ 阅读(180) 评论(1) 推荐(0)
摘要: 题意:给定一个矩阵,每个元素可正可负,求最大子矩阵使得其所有元素和最大。给定的矩阵是环形的,即:第一列和最后一列是相连接的,第一行和最后一行也是相连接的。分析:构造前缀和。O(n4)的效率不是很满意,期待更快的算法View Code 1 #include <stdio.h> 2 #include <iostream> 3 using namespace std; 4 const int MAXN = 160; 5 #define DEBUG 6 int a[MAXN][MAXN], b[MAXN], c[MAXN]; 7 int main(){ 8 #ifndef DE 阅读全文
posted @ 2013-02-16 10:08 ChrisZZ 阅读(156) 评论(0) 推荐(0)
摘要: 题意:题目是中文的:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=16216分析:这道题目作为模板题其实值得多练习几次的。用树状数组来写:View Code 1 #include <stdio.h> 2 #include <iostream> 3 using namespace std; 4 #define DEBUG 5 const int MAXN = 50000 + 10; 6 int a[MAXN], n; 7 int lowbit(int x){return x&(-x);} 8 阅读全文
posted @ 2013-02-15 13:03 ChrisZZ 阅读(183) 评论(0) 推荐(0)
摘要: 题意:有n个任务,每个任务有三个参数r、d、w表示在[r,d]时间段内必须执行的工作量为w。处理器的工作速度可以变化,问执行中最大速度的最小值。分析:题目显然提示了要用二分。代码:View Code 1 #include <stdio.h> 2 #include <iostream> 3 #include <queue> 4 #include <vector> 5 #include <string.h> 6 #include <algorithm> 7 using namespace std; 8 const int MA 阅读全文
posted @ 2013-02-15 12:28 ChrisZZ 阅读(222) 评论(0) 推荐(0)
摘要: 题意:有n个垃圾,第i个垃圾坐标为(xi,yi)。有一个机器人按照编号从小到大哦捡起所有的垃圾并扔进垃圾桶,垃圾桶再远点。机器人手中垃圾总重量不能超过C,两点之间的距离为曼哈顿距离,求机器人行走的最短总路程分析:d[i]=min{d[j]+dist2origin(j+1)+dist(j+1,i)+dist2origin(i)|j<=i, w(j+1,i)<=c}里面可以写成函数f以简化计算代码:View Code 1 #include <stdio.h> 2 #include <algorithm> 3 using namespace std; 4 cons 阅读全文
posted @ 2013-02-15 11:42 ChrisZZ 阅读(160) 评论(0) 推荐(0)
摘要: 题意:给你一个n个点m条边的无向无环图,在尽量少的节点上放灯,使得所有边都被照亮,每盏灯将照亮以他为一个端点的所有边,在灯的总数最小的前提下,被两盏灯同时照亮的边数应当尽量大。分析:d(i,j)表示i的父节点放灯的状态为j(1表示放,0不放),以i为根的树的最小x值 x=Ma+c, a表示灯的总数, c表示只有一盏灯照亮此边, 题目转化成求x最小的问题, 把每个节点的x都求出来就好代码:View Code 1 #include <stdio.h> 2 #include <iostream> 3 #include <string.h> 4 #include & 阅读全文
posted @ 2013-02-15 10:49 ChrisZZ 阅读(318) 评论(0) 推荐(0)
摘要: 每天刷6题的目标看来还是有点难啊~先找一道以前A掉的题目充数吧~不过个人觉得这题用SPFA真的不错的~(因为网络流我还不会o(╯□╰)o)题意:有A,B两个人要越狱,A成功地从监狱到达火车站时B立即出发,两个人的路线不能有重合(可以重合点,不可以重合边),需要两个人路径和最短,求最短路径和。抽象一点,就是找到从点S到T的最短长度的环(即:两次路径不能有重边)思路:最大流的方法可以做,我用的是两次SPFA,相当于求两次最短路:先求一次最短路,然后把最短路上的S->T方向的边长赋值为INF,反向边长赋值为-map[u][v],即原来长度的相反数,然后再次SPFA,两次结果相加即可。对于标记为 阅读全文
posted @ 2013-02-14 16:27 ChrisZZ 阅读(304) 评论(0) 推荐(0)
摘要: 题意:题意很费解,大意是有N台电脑,每台电脑有N(N<=16)个服务,一个黑客可以在每台电脑上跑一个(只能跑一个)让一种服务崩溃的病毒,并且这个病毒可以传播到跟他邻接的顶点,问最多这个黑客可以让多少个服务崩溃?(每台电脑上都是N个不同服务,每台电脑上跑的都是一样的服务,让一个服务崩溃是让所有的电脑上的这个服务崩溃)分析:要想到题目对应的数学模型:把n个集合P1,p2,...,pn分成尽量多组使得每组中的所有集合的并集等于全集,这里集合Pi就是计算机i及其相邻计算机的集合,每组对应一种服务。书上说用二进制表示,我觉得有些地方还是不很理解。。。View Code 1 #include < 阅读全文
posted @ 2013-02-14 15:24 ChrisZZ 阅读(226) 评论(0) 推荐(0)
摘要: 题意:经典的取石子游戏是这样的:有一堆石子,A、B两个人轮流取,每次取一颗,只能从边上取,每个石子有相应的价值,A、B两人都想使得自己的价值最多,两个人足够聪明,问最后价值分别是多少本题则是可以取多颗,但仍然只能从一侧取得分析:状态转移方程best[i][j]=sum[i][j]-min(best[i][j-k],best[i+k][j], 0);{1<=k=j-i+1}.使用了记忆化的方法,O(n3),书上说有进一步的优化,不过当前数据下已经很快了(64ms)代码:View Code 1 #include <stdio.h> 2 #include <iostream& 阅读全文
posted @ 2013-02-14 13:49 ChrisZZ 阅读(140) 评论(0) 推荐(0)
上一页 1 ··· 45 46 47 48 49 50 51 52 53 ··· 56 下一页