LeeBlog

导航

上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 19 下一页

2011年3月26日 #

HDU 1284 钱币兑换问题 母函数 or 完全背包

摘要: i相信知道做前面那个后这个应该很水了#include<stdio.h>int m1[40000],m2[40000];void chart( ){ for( int i = 0 ; i <=32780; ++i ) { m1[i] = 1; m2[i] = 0; } for( int i = 2; i <= 3;++i ) { for( int j = 0; j <= 32780; ++j ) for( int k = 0; k + j <= 32780; k += i ) m2[j + k] += m1[j]; for( int j = 0; j < 阅读全文

posted @ 2011-03-26 21:15 LeeBlog 阅读(260) 评论(0) 推荐(0) 编辑

HDU 1028 Ignatius and the Princess III 母函数 模板 or 完全背包

摘要: 这题是母函数的一模板题,如果你还不知道什么叫母函数,请去网上下载卢华明,卢开澄的<组合数学>,或者去tankywoo那里把原理看懂,http://www.wutianqi.com/?p=596。里面的第二章把母函数的原理分析得很透彻,下面讲代码实现.其实下面代码就是电脑模拟人工计算,而且很有规则,是从第一个括号开始算起,先把第一个括号跟第二个括号相乘,然后这两个括号就合并了,然后又把第一个括号跟第二个括号相乘,知道n个括号全部被算出来(i 就代表第几个括号正在被合并);我想大家肯定对m2[j + k] += m1[j]很疑惑,是的,我也在这卡了很久.我开始总以为这是什么公式,结果一 阅读全文

posted @ 2011-03-26 20:44 LeeBlog 阅读(442) 评论(2) 推荐(1) 编辑

2011年3月23日 #

HDU 3786 找出直系亲属 floyd

摘要: 这题好悲剧啊,我用floyd做一直不能过,迷惑了我一晚上,改了N个地方还是wa,最后看着大牛代码改终于发现,floyd关系弄错了#include<stdio.h>int map[26][26];void floyd( ){ for( int i = 0; i < 26; ++i ) for( int j = 0 ; j < 26; ++j ) for( int k = 0; k < 26; ++k ) if( map[j][i] && map[i][k] ) map[j][k] = map[j][i] + map[i][k];//wa所在地 }vo 阅读全文

posted @ 2011-03-23 00:51 LeeBlog 阅读(313) 评论(0) 推荐(0) 编辑

2011年3月22日 #

HDU 2899 Strange fuction

摘要: 这题是以水题,开始被他唬了,后来听唐聪一说又是以单调,这个函数的倒数在0-100内事单调递增的,如果Y小于0,在0时导数值是大于0的,显然这是函数一直是递增的,所以最小值在0处产生,当Y大于0,求出X使得导数值等于0(二分),此时函数取得最小值,所以又是一水题啊 #include<iostream>#include<cmath>#include<cstdlib>using namespace std;double x,y,z;inline double fax( double x ){ return 6 * pow( x, 7 ) + 8 * pow( x, 阅读全文

posted @ 2011-03-22 19:28 LeeBlog 阅读(198) 评论(0) 推荐(0) 编辑

2011年3月21日 #

HDU 2199 Can you solve this equation?

摘要: 这题开始差点把他做一元二次方程给解了,后面用到POW时才有感觉,后来想得好复杂,四元一次怎么解啊 ,最后好玩把0-100内所有的函数值全部打出来,竟发现左边的函数在0-100内是单调递增的,看到这儿各位该知道了吧,直接二分;还有判断循环要用函数值,不要用自变量,用自变量要精确到10的-6次方#include<stdio.h>#include<math.h>double x,y;double f( double x ){ return 8 * pow( x,4 ) + 7*x*x*x + 2*x*x + 3*x + 6;}int main( ){ int t; scanf 阅读全文

posted @ 2011-03-21 21:07 LeeBlog 阅读(171) 评论(0) 推荐(1) 编辑

hdu 3790 最短路径问题

摘要: 今天的这题有点悲剧,错就错在一个地方,在输入距离的时候,我把花费也考虑进去了,结果一只wa,没办法,看了大牛的代码才知道只要考虑距离;#include<stdio.h>int n,m,s,t;int inf = 0x7fffffff,des[1024],dis[1024],map[1024][1024];int co[1024],cost[1024][1024];void Dijkstra( ){ for( int i = 1; i <= n; ++i ) { dis[i] = co[i] = inf; des[i] = 0; } dis[s] = co[s] = 0; f 阅读全文

posted @ 2011-03-21 14:00 LeeBlog 阅读(605) 评论(0) 推荐(0) 编辑

2011年3月15日 #

HDU 1671 Phone List

摘要: 这题是字典树的以简单题但我开始一直不能水过,后来才发现rt用的不是自定义,再循环使用时没有初始化,后来将结构体自定义,果断水过,表示以后所有的结构体都用自定义#include<stdio.h>#include<stdlib.h>#include<string.h>const int max = 10;typedef struct T{ T *ch[max]; int f; }Trie;int flag = 1; char in[50];void init( T *t ){ t -> f = 0; for( int i = 0; i < max; 阅读全文

posted @ 2011-03-15 22:22 LeeBlog 阅读(183) 评论(0) 推荐(0) 编辑

2011年3月14日 #

HDU 1251 统计难题 字典树

摘要: 此题用字典树做,很快,据小白说还有一种方法:把每个单词的第一个字母存进去,然后再进行字符串比较,这样刚好不超时#include<stdio.h>#include<string.h>#include<stdlib.h>struct T{ T *ch[26]; int n;}rt;char in[30];void init( T *t ){ t -> n = 0; for( int i = 0; i < 26; ++i ) t -> ch[ i ] = NULL; }void insert( T *t,char *in ){ if( t -&g 阅读全文

posted @ 2011-03-14 22:09 LeeBlog 阅读(166) 评论(0) 推荐(0) 编辑

2011年3月13日 #

hdu 1234 开门人和关门人

摘要: 这个地方要用string.h中的几个函数,特别是strcmp,可以比较两个时间;#include<stdio.h>#include<stdlib.h>#include<string.h>struct e{ char s1[20],s2[20],s3[20];}p[1000005];int main( ){ int t,n; scanf( "%d",&t ); while( t-- ) { scanf( "%d",&n ); for( int i = 0; i < n; ++i ) scanf( & 阅读全文

posted @ 2011-03-13 22:36 LeeBlog 阅读(573) 评论(0) 推荐(0) 编辑

HDU 2022 海选女主角

摘要: #include<stdio.h>#include<math.h>int main( ){ int x,y; while( scanf( "%d%d",&y,&x ) != EOF ) { int py ,px,min,t; min = t = 0; py = px = 0x7fffffff; for( int i = 1; i <= y; ++i ) { for( int j = 1; j <= x; ++j ) { scanf( "%d",&t ); if( fabs( t ) > f 阅读全文

posted @ 2011-03-13 18:36 LeeBlog 阅读(371) 评论(0) 推荐(0) 编辑

上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 19 下一页