oj
daydaytech
coder at work
展开
-
woj 1036 高精
题目地址:http://acm.whu.edu.cn/learn/problem/detail?problem_id=1036题目主要考点:数学公式推导,高精方法一:(c++)#include #include #include #include #include #include using namespace std;string Sum(string a,st原创 2013-04-28 15:04:28 · 1013 阅读 · 0 评论 -
hdu 3979 贪心
简单贪心,不过wa了,没找出原因,先上一个别人过的代码:#include#include#includeusing namespace std;#define LL long longstruct node{ LL hp; LL g; LL t;}monster[10005];bool cmp(const struct node &a,const str原创 2013-05-10 17:18:15 · 473 阅读 · 0 评论 -
hdu 1055 poj 2054 映射二叉堆
算法:算法证明:http://hi.baidu.com/cheezer94/item/7b4a15214b2050022b0f1c0a代码来源:http://www.cppblog.com/notonlysuccess/archive/2009/07/02/88793.htmlò 1.标记根节点为第一个访问的节点。ò 2.求出当前未访问节点中的最大点权节点i。ò 3.转载 2013-05-10 19:23:26 · 833 阅读 · 0 评论 -
hdu 1031
题意:先按满意度排序,选出前K个,在按序号排序。排序水题,看懂题目就行.#include #include #include #include #include #include using namespace std;struct N{ int no; double val;};bool cmp(N a,N b){ if(fabs(a.val原创 2013-05-10 20:58:36 · 460 阅读 · 0 评论 -
hdu 3855 单调栈
原帖链接:http://hi.baidu.com/yy17yy/item/8e3f153e422d74ffdf22215a#include #include #include using namespace std;const int N=1010;//dp->1,1到i,j的所有和,,,,pre->i,j的同行的最近的比K小的点+1int da[N][N],dp[N][N],p转载 2013-05-10 23:16:55 · 458 阅读 · 0 评论 -
woj 1166 字符串 二叉树
一些只含0/1的串,判断是否有一个为另一个的前缀(相同不算)方法一:字符串处理#include #include #include #include #include using namespace std;char str[1010];string s[1010];int cmp (char *a, char *b) { return strcmp(a, b)原创 2013-05-11 09:58:24 · 566 阅读 · 0 评论 -
hdu 1305 二叉树
简单的二叉树应用,用的数组存储二叉树原帖地址:http://blog.csdn.net/dooder_daodao/article/details/6328227#include#include#define M 2<<12char s[M];char b[16];int flag;void Insert(){ int i; char *p; for(转载 2013-05-11 10:01:00 · 488 阅读 · 0 评论 -
hdu 1056 水题
不多说了,水题#include #include #include #include #include #include using namespace std;int main(){ //freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); double a[280],tm原创 2013-05-11 10:32:52 · 435 阅读 · 0 评论 -
hdu 1057 水题
模拟的水题,题目真心不想读,看了一遍没看懂就搜答案去了意思是什么还是看下面的代码吧原帖地址:http://hi.baidu.com/007dreamfly/item/7f7ae4dd45e3d740d73aae16#include"stdio.h"#include"string.h"int g[25][25],temp[25][25],D[20];int main(){转载 2013-05-11 10:56:27 · 489 阅读 · 0 评论 -
hdu 1058 dp
本来以为是水题,自己写的是 i 从 1 到 2000000,结果发现用时长很多,而且输出看结果是发现和样例不一样,再看看大家的解题报告,只能重复两句:1,动态规划2,英语确实很重要原帖地址:http://blog.csdn.net/chaoojie/article/details/7001333#include "stdio.h"#define MIN(a, b) ((a)转载 2013-05-11 11:25:30 · 369 阅读 · 0 评论 -
hdu 1054 树形dp
原帖地址:http://blog.csdn.net/ice_crazy/article/details/7825439#include"stdio.h"#include"string.h"struct Eage{ int from; int to; int next;}eage[2222222];int tot;int head[1555];int n;int转载 2013-05-10 16:02:53 · 362 阅读 · 0 评论 -
hdu 1053 哈夫曼树 优先级队列
原帖地址:http://hi.baidu.com/nicker2010/item/728da1f738aecf07d99e72ec优先级队列:#include #include #include #include #include using namespace std;int main(){ string text; int Size,i,j,k,sum转载 2013-05-08 10:21:10 · 400 阅读 · 0 评论 -
hdu 1052 贪心
田忌赛马,问田忌最多能多赢多少局,赢就+200,输-200,平就是0;我的思路是将马从大往小排列,然后齐王的马从前往后扫,如果此时比田忌的马慢,就算田忌胜一局,不满足这个条件,就看是否比田忌最慢的马快,如果快就记田忌输一局但是提交wa了,求解!!!原帖地址:http://www.niuyq.com/2012/8/4/00458.htmlac源码:#include#转载 2013-05-07 21:24:50 · 404 阅读 · 0 评论 -
woj 1002 字符串处理
题目链接:http://acm.whu.edu.cn/learn/problem/detail?problem_id=1002#include#include#include#includeusing namespace std;char c;char b[8];int main(){ int i = 0, sum = 0; bool flag = fa原创 2013-04-28 15:18:31 · 843 阅读 · 0 评论 -
hdu 1044 bfs dfs
原帖地址:http://www.cnblogs.com/kuangbin/archive/2012/08/14/2637512.html/*HDU 1044 Collect More Jewels走迷宫,问在规定时间内从起点到终点最多可以收集到宝物的价值是多少。先bfs找出所有宝物及起点和终点这些位置之间的最短距离,再起点dfs最大。加个剪枝,如果已经拿到所有宝物了,就不再搜索。转载 2013-05-07 14:32:32 · 455 阅读 · 0 评论 -
hdu 1045 dfs 二分匹配
原帖地址http://www.cnblogs.com/kuangbin/archive/2011/08/09/2132830.html/*HDU 1045*/#include#include#includeusing namespace std;int uN,vN;int g[20][20];int linker[20];bool used[20];char map[转载 2013-05-07 14:43:08 · 391 阅读 · 0 评论 -
hdu 1046 数学公式推导
稍微推一下就发现n/m如果都是奇数,就需要走一个斜线,其他情况都可在n*m走完#include #include #include #include #include #include using namespace std;int main(){ //freopen("in.txt", "r", stdin); //freopen("out.txt", "w原创 2013-05-07 15:10:31 · 527 阅读 · 0 评论 -
hdu 1047 高精
原帖地址:http://hi.baidu.com/zf2650/item/b9f1794d9468a6e9a4c066e9#include #include using namespace std;string add(string,string);int main(){ int t; cin>>t; while(t--) { stri转载 2013-05-07 15:24:36 · 447 阅读 · 0 评论 -
hdu 1048 字符串处理
说白了就是这么读取一整行字符串,装载两种方法:方法一:使用 gets()函数原帖地址:http://hi.baidu.com/carl436/item/ce4ec75dfb3aee14aaf6d7a9#include#includechar a[1000];int main(){ while(gets(a)) { if(strcmp(a,"ENDOFINPUT转载 2013-05-07 15:55:09 · 383 阅读 · 0 评论 -
hdu 1049 数学公式推导
水题#include #include #include #include #include #include using namespace std;int main(){ //freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); int n,u,d,ans; wh原创 2013-05-07 16:03:50 · 331 阅读 · 0 评论 -
hdu 1050
情景题,解题思路是将房间看成200段,每段通过时就+1,通过次数最多的就是所求原帖链接:http://blog.sina.com.cn/s/blog_8ce28a170100urf6.html#includeint main(){ int corridor[205]; int T,N,max; int s,t,i,j,temp,k; scanf("%d"转载 2013-05-07 20:05:32 · 361 阅读 · 0 评论 -
hdu 1051 贪心
简单贪心,排序后一遍一遍筛就行了原帖地址:http://blog.csdn.net/ice_crazy/article/details/7597112#include #include #include #include #include #include using namespace std;struct N{ int l,w,f;//f初始为0,表示没有访问过转载 2013-05-07 20:28:41 · 357 阅读 · 0 评论 -
hdu 1059 dp
题意是有值为1-6的东东,告诉你每个东东有多少个(个数为num[i]),问你能不能分成值相等的两份在poj上面也有一样的题目,但是之前做的时候搜索到的题解用的(方法一:多重背包+二进制优化)||(方法二:dp),但是都写得比较难理解,所以一直没有搞懂,看了下面的dp终于明白了.分析:如果总数sum不是偶数,那么肯定不行如果sum偶数,那么区total=sum/2,看dp[total转载 2013-05-11 14:58:06 · 399 阅读 · 0 评论 -
hdu 1060 数论
任何一个数字都可以n表示成10^(a+b)。其中a>=1,bn=87455时,a=4,b=0.941784644. 有规律.10^a=10000.10^b=8.7455.所以n的左边数起第一位数字。就是10^b的第一位有效数字,第二数字,是10^b的第二位有效数字。。。。以次类推#include#include using namespace std;int m转载 2013-05-11 15:04:21 · 379 阅读 · 0 评论 -
hdu 1061 数论
由于n比较大,可以用到二分优化,我在算法的书上看到过,后来很多oj都有这样的水题了,只能说数论这东东,看过了就都是水题,没看过真心难想代码如下:#include #include #include #include #include #include using namespace std;int modexp(int a,long long b,int n)//a^b%n,原创 2013-05-11 15:25:37 · 321 阅读 · 0 评论 -
woj 1038 最小生成树
题意就是给你一个长为L的绳子,然后给出n个点,问能不能把所有点都连接在一起prime算法:首先两个集合,集合1只含一个顶点A,集合2含有剩下的n-1个顶点,重复下面的操作n-1次找出集合2中顶点与顶点A连接的最短边,将这个顶点B从集合2移入集合1中,下次使用B继续找顶点代码实现如下:#include #include #include #include #inclu原创 2013-05-13 15:07:44 · 770 阅读 · 0 评论 -
woj 1050 最小生成树
kruskal算法:#include #include #include #include #include #include using namespace std;#define MAXV 100//后面都会用到#define MAXSIZE (100*100)#define INF 100000//INF表示正无穷struct MGraph{ int edg原创 2013-05-13 16:35:15 · 828 阅读 · 0 评论 -
woj 1009 最短路径 dijkstra算法
按照李春葆这本书上的范例来的,不过处理数据还是弄了很久,程序也没有好好优化,唉,我都搞了一下午加一晚上,不想看这个就看我待会写的"dijkstra"模板吧#include #include #include #include #include #include using namespace std;#define MAXV 100//后面都会用到#define INF 327原创 2013-05-13 20:45:55 · 851 阅读 · 0 评论 -
woj 1008 贪心
第一个自己想出来的贪心,mark一下题意链接:http://acm.whu.edu.cn/learn/problem/detail?problem_id=1008题意:有m个人n个动物,给出每个人能能喂养动物的表(题目是这个动物喜欢这个人,一样的意思),每个人最多能喂养的动物数,求是否能喂养所有动物.思路:a[i][j]表示i人能喂养j动物,b[i]表示i人能喂养的动物总数,c原创 2013-05-14 00:13:11 · 1248 阅读 · 0 评论 -
zoj 2067 dp
求白方块的个数,这个用的是N^3的算法,之后我在woj1012中会更新N^2 的算法题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1067/* 题目:经典DP 分析:状态方程 f(i,j),为以 i,j为右下角的 rect的个数,然后求和即可。 预处理,计算每行到位转载 2013-05-14 10:20:39 · 472 阅读 · 0 评论 -
zoj 1985 dp
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1985题意:求最长矩形面积方法:dp,求出每个点左右能达的最大距离//利用r,l数组记录,以这个点为最低点时的左右可到达的范围,然后向左向右迭代搜就行了#includelong long max(long long a,long long b){转载 2013-05-14 12:38:52 · 686 阅读 · 0 评论 -
woj 1018 循环群
以前一直感觉学了那么多数学相关的没有什么用呀,今天遇到这个要用到循环群的,彻底服了,多学点绝对没有错!!!题目链接:http://acm.whu.edu.cn/learn/problem/detail?problem_id=1018//首先找出序列中所有的置换,然后对于每个置换有两种方法将其调成合法。//1.每次用置换中最小的数去和其他数换,ans=sum+min*(num-2)。//转载 2013-05-14 16:05:39 · 1330 阅读 · 0 评论 -
woj 1012 滚动数组
两次用到滚动数组,十分之强大,之前以为把ZJU的1985和ZJU的2067给做了,先想N^3的算法,把2067给过了。。然后结合1985的DP就可以做出一个N^2的算法。但是提交的时候还是超时,后来看了一下过的代码,滚动数组用得好彪悍.//多次用到滚动数组,太强大了#include #include int main(){ char in[2001]; long s原创 2013-05-14 23:17:11 · 1800 阅读 · 2 评论 -
woj 1039 并查集
题意链接:http://acm.whu.edu.cn/learn/problem/detail?problem_id=1039初始时每个点的父节点是自己本上,插入一个数后和他后面的一个数合并,并设置一个数更新出现值的最大位置.#include #include #include #include #include #include using namespace std;co原创 2013-05-15 08:52:33 · 753 阅读 · 0 评论 -
hdu 4006 优先级队列
优先级队列真心好用,队列从小到大排列,超过k就出最小的即可题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4006原帖地址:http://blog.csdn.net/qiqijianglu/article/details/6779313#include #include #include #include #include #in转载 2013-05-13 12:26:25 · 377 阅读 · 0 评论 -
hdu 1896 优先级队列
优先级队列的简单应用只用考虑白天的走的时候能扔多远就行,晚上的时候扔回来了,所以白天的状态就是最终的答案题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1896原帖地址:http://hi.baidu.com/nothingl3/item/8783aef302c5ef0085d2785a//读取所有石头之后在进行处理#include转载 2013-05-13 12:03:33 · 447 阅读 · 0 评论 -
hdu 1873 优先级队列
只是多了一个优先级队列数组而已,相当于裸的优先级队列题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1873#include #include #include #include #include #include #includeusing namespace std;struct node{ int pri,no;原创 2013-05-13 11:38:21 · 540 阅读 · 0 评论 -
hdu 1062 字符串处理
字符串处理的简答题,我本来想有没有能像读数字一样到空格就结束的读取单词这样的输入方式,发现就是读取一行,汗一下.原帖地址:http://www.worlduc.com/blog2012.aspx?bid=10332853#include #include #define MAX 1000int main(){ int n,i,j,k,m,len; char str转载 2013-05-11 15:53:29 · 348 阅读 · 0 评论 -
hdu 1063 poj 1001 字符串处理 数学相关
两个相同的题,之前在poj上面做过,直接贴了算了.#include#includeusing namespace std;#define max 200int main(){ int a[max]={0},n,e,j,k,q,set=0;//base的n次方 char c[20];//接收输入字符串 while(cin>>c>>n) { int len=strlen(c原创 2013-05-11 15:57:44 · 344 阅读 · 0 评论 -
hdu 1064 水题
求12个浮点数的平均值#include #include #include #include #include #include using namespace std;int main(){ freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); double a,sum=0原创 2013-05-11 16:14:26 · 397 阅读 · 0 评论