![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hdu
文章平均质量分 64
laserss
laserss@qq.com
展开
-
hdu3555 数位dp入门题
hdu3555给出T个N,对每一个N求1~N中有多少个数含49 (如 49,449,12349,2491等)参考#include#include#include#includeusing namespace std;__int64 N,dp[33][3],sum;int bit[33];int main(){ int i,j,T,len; m原创 2013-05-09 13:31:22 · 1578 阅读 · 0 评论 -
hdu4135 互斥+容斥原理
hdu4135网上学到到的递归写法#include#include#includeusing namespace std;int fac[20];void Init(int m){ int i,n=0; for(i=2;i*i<=m;i++) if(m%i==0){ fac[++n]=i; while原创 2012-11-29 16:31:40 · 1937 阅读 · 0 评论 -
hdu2841 筛选素因子 容斥定理
hdu2841#include#include#define max 100001int Prim[max],num[max][20];void init(){ int i,j; memset(Prim,0,sizeof(Prim)); for(i=1; i<=100000; i++) num[i][0]=0; for(i=2; i<=100000; i+原创 2012-11-28 19:30:46 · 1161 阅读 · 0 评论 -
hdu1305字典树
hdu1305#includeusing namespace std;struct trie{ int num; trie *child[2]; trie() { for(int i=0;i<2;i++) child[i]=0; num=0; }} *root;int flag;void Insert(char *x){ int k=0;trie原创 2012-11-10 19:43:29 · 853 阅读 · 0 评论 -
hdu1753大明A+B
hdu1753包含小数点的字符串加法测试输入:0.0000001 0.11.0 2100.89 1.130.0000000 1.1输出0.10000011.2102.021.1#include#include#include#include#includeusin原创 2012-10-28 14:57:00 · 1418 阅读 · 0 评论 -
hdu1711 KMP模板
hdu1711在大话数据结构上看到的代码。貌似效率不是很高 提交页面用时比这个少的一大堆#include#includeusing namespace std;int S[1000010],T[10010],next[10010],N,M;void GetNext(){ int i=1,j=0; next[1]=0; while(i<M) {原创 2012-11-03 22:46:09 · 676 阅读 · 0 评论 -
hdu2689排序?
hdu2689莫名其妙的过了#includeint main(){ int sum,n[1010],N,i,j; while(scanf("%d",&N)!=EOF) { for(i=1;i<=N;i++) scanf("%d",&n[i]); for(sum=0,i=1;i<=N;i++) for(j=i+1;j<=N;j++) if(n[j]<n[i]) su原创 2012-11-03 20:17:42 · 1035 阅读 · 0 评论 -
hdu2108叉积判断凸凹
hdu2108#include#include#includeusing namespace std;struct point{ double x,y;}p[1000];double xmult(point a,point b,point c){//大于零代表a,b,c左转 return (b.x-a.x)*(c.y-a.y)-(b.y-a.y)*(c.x-a.x原创 2012-10-23 20:37:56 · 1267 阅读 · 0 评论 -
hdu2062
hdu2062求按字典序排列数串中的第m个数串#include#includeusing namespace std;int main(){ int i,j,num,n,ans[21]; bool exist[21]; long long m,f[21]={0,1}; for(i=2;i<=20;i++) f[i]=i*f[i-1原创 2012-10-22 22:26:36 · 1587 阅读 · 0 评论 -
hdu2102 双层bfs
hdu2102当传送的目的地是墙或者仍是传送机的时候就不要去了,把他当做墙.#include#includeusing namespace std;struct point{ int x,y,step,type;} P[105];char mp[2][12][12];int M,N,T,dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}原创 2012-10-31 20:18:06 · 2200 阅读 · 1 评论 -
hdu2100Lovekey 字符串加法
hdu2100使用strcpy可以提高效率#include#include#include#includeusing namespace std;int main(){ int i,j,alen,blen,len; char x[210],y[210],ans[210]; while(scanf("%s%s",x+1,y+1)!=EOF) { //x去原创 2012-10-29 11:53:33 · 653 阅读 · 0 评论 -
hdu1582AC again-bfs
#includeusing namespace std;char mp[60][60];int num;void bfs(int x,int y){ if(x51||y51) return; if('*'==mp[x][y]) return; mp[x][y]='*'; bfs(x-1,y); bfs(x,y-1); bfs(x,y+1); bfs(x原创 2012-10-13 15:46:43 · 781 阅读 · 0 评论 -
hdu1069Monkey and banana -最大递增子序列dp
#includeusing namespace std;struct BOX{ int l,w,h;}box[200];int dp[200];bool cmp(BOX a,BOX b){ if(a.l==b.l) return a.w>b.w; else return a.l>b.l;}int main(){ int T=1,n,N,i,j,k; w原创 2012-09-20 21:52:47 · 764 阅读 · 0 评论 -
hdu4277 数字的hash
容器的应用hdu4277#include#include#includeusing namespace std;typedef long long lld;const int MOD=10003;vector v[MOD+10];int num,n,i,N[15];void insert(lld x){ int key=x%MOD; fo原创 2012-10-11 19:15:34 · 921 阅读 · 0 评论 -
hdu2854 Beans 二维dp
hdu2845 Beans 二维动态规划,先求每一行的最大和,组成新的一行,最后在求这一行的最大和 #include#includeusing namespace std;const int INF=200010;int Row[INF][2],Col[INF][2];main(){ int i,j,R,C,temp; while(scanf("%d%d原创 2012-07-23 13:22:37 · 873 阅读 · 0 评论 -
最大连续子串&子矩阵
最大连续子串hdu1003最普通的版本dp[i]=max{ dp[i-1]+dat[i] , dat[i] }对于当前的数字dat[i], 有两种选择A.原子串增长,dp[i]=dp[i-1]+dat[i]~~~~~前提是dat[i]B.原子串结束,以dat[i]为起点开始新子串。~~~~~前提是dat[i]>dp[i-1]+dat[i]注:原创 2012-09-11 19:06:42 · 990 阅读 · 0 评论 -
hdu2117Just A Numble-数学
hdu2117小范围模拟除法#includeint main(){ int m,n,i,j,sum,num; while(scanf("%d%d",&n,&m)!=EOF) { if(n==1) printf("0\n"); else { sum=10; for(i=1;i<=m;i++) { num=sum/n;原创 2012-09-10 21:53:42 · 546 阅读 · 0 评论 -
hdu1358 KMP-next数组的应用
hdu1358next数组贮存的是String中前i位字符 最长相同的前后缀长度+1。i-next[i] 则表示前i 位中循环节的长度#include#includeusing namespace std;char T[1000010];int next[1000010];int N,M;void GetNext(){ int i=1,j=0; n原创 2012-11-16 12:52:55 · 961 阅读 · 0 评论 -
hdu1316 斐波纳契 大数 二分
hdu1316#include#include#include#includeusing namespace std;char a[105],b[105];char F[495][110];int cmp(char a[],char b[]){ int lenA=strlen(a),lenB=strlen(b),i,j; if(lenA<lenB) return原创 2012-11-16 13:45:14 · 933 阅读 · 1 评论 -
hdu3037Saving Beans lucas定理
hdu3037lucas 对组合数取模lucas(n,m)=C(n%mod,m%mod)*lucas(n/mod,m/mod)%mod;lucas(n,0)=1;#include#includeusing namespace std;__int64 jc[100010];__int64 exgcd(__int64 a,__int64 b,__int64原创 2012-12-02 17:23:28 · 1095 阅读 · 0 评论 -
poj1655Balancing Act 树的重心,树形dp
poj1655第一次dfs求出每个子树的节点数第二次dfs求答案这一题是poj1741的基础(1741代码)poj3107也是相同的意思 不过所有点都要输出,并且无法使用stl(数据规模较大)题解#include#include#include#includeusing namespace std;int N;vectorson[20010]; //图原创 2013-04-23 12:35:14 · 1207 阅读 · 0 评论 -
hdu2196Computer 经典树形dp 在树上求最长距离
hdu2196题解两次搜索的方法#include#include#include#includeusing namespace std;int N,V[10100]; vectorson[10100]; //图 int MAX[10100],MAXN[10100]; //最大值及其标号 int SMAX[10100],SMAXN[10100];原创 2013-04-18 21:24:39 · 1399 阅读 · 0 评论 -
hdu1520 Anniversary party 树形dp
hdu1520比之前树形背包要简单多了,没有背包的体积限制dp[ i ] [ 0 ] 以i为根(不包括i本身)的树上取到的最大值dp[ i ] [ 1 ] 以i为根(包括i本身)的树上取到的最大值#include#include#include#includeusing namespace std;int N,V[6100];vectorso原创 2013-04-18 14:32:15 · 924 阅读 · 0 评论 -
hdu1011Starship Troopers 树形DP
hdu1011有很多细节需要理解http://tobyaa.blog.163.com/blog/static/3024859120128260453244/一棵树,有n个结点,每个结点有v个bug,有w的brain。我从1号结点开始走,带着m个战士。 1个战士可以消灭20个bugs,如果我把某个结点的所有bug都消灭了我就能得到那个结点的brain。如果想攻击当前结点,原创 2013-04-15 21:52:51 · 941 阅读 · 1 评论 -
poj1155TELE - 树形dp
poj1155这题和上一题一样的思路,不过背包的体积有不同,每次都要计算#include#include#include#includeusing namespace std;int N,M,v[3010];vectorson[3010]; //记录儿子节点 vectorcost[3010]; //记录花费 int dp[3010][3010];int原创 2013-04-15 11:14:31 · 883 阅读 · 0 评论 -
hdu1561树形DP入门
hdu1561The More,The Better推荐题解dp[ i ] [ j ] 以节点i为跟,取j个(包括i,即dp[i][1]=V[i])所能得到的最大值#include#include#include#includeusing namespace std;int N,M,v[223];vectorson[223];int dp[223][223]原创 2013-04-14 13:44:33 · 2988 阅读 · 0 评论 -
hdu3535 01&分组背包
hdu3535稍微能理解一些了,至少取一个的分组背包。http://www.cnblogs.com/wuyiqi/archive/2011/11/19/2255208.html写hdu3033的那题 网上没有解释好一点的题解 ,这题题解比较多#include#include#includeusing namespace std;int N,T,M,原创 2013-04-11 20:48:33 · 1217 阅读 · 0 评论 -
hdu3033 分组背包变形(至少去1个)
hdu3033受不了了#include#include#includeusing namespace std;int N,M,K,a,b,c;struct NODE{ int num; int w[110],v[110];} n[11];int dp[11][11000];int main(){ int i,j,k; while(scanf("%d原创 2013-04-10 21:10:45 · 804 阅读 · 1 评论 -
hdu1269 Tarjan强连通分量 模板
hdu1269资料师兄给的模板/*2012-12-06 20:16:08 Accepted 1269 46MS 1484K 1339 B C++*/#include #include #include using namespace std;#define maxn 10010int n;vector g[maxn];int Bcnt;原创 2012-12-06 21:59:38 · 4011 阅读 · 1 评论 -
hdu2209 翻纸牌游戏-位运算bfs
hdu2209#include#include#include#includeusing namespace std;bool vis[1<<20];int path[1<<20],len;queueQ;int bfs(int x){ int X; if(!x) return 0; while(!Q.empty()) Q.pop(); Q.push(x);原创 2012-11-23 20:25:26 · 1052 阅读 · 0 评论 -
hdu1426 数独killer
hdu1426题目上说有唯一解...按照他说的用唯一解来写 超时啊//运行代码后面的样例时//最后18个空位产生死循环 #include#include#includeusing namespace std;int mp[10][10],T[10]={0,1,1,1,2,2,2,3,3,3};int N; //N个空需要填struct point{原创 2012-11-23 20:11:13 · 1065 阅读 · 0 评论 -
hdu2586 LCA模板
hdu2586先预处理然后是 在线询问 (也就是一边读入一边查询)#pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include using namespace std;#define maxn 400010int n;struct Nod原创 2012-12-06 17:27:26 · 4593 阅读 · 1 评论 -
hdu1059Dividing 多重背包二进制优化
hdu1059#include#include#includeusing namespace std;int dp[440000],sum,n[7];int main(){ int i,j,k,left,T=1; while(scanf("%d%d%d%d%d%d",&n[1],&n[2],&n[3],&n[4],&n[5],&n[6])) { sum原创 2012-12-03 21:57:46 · 1275 阅读 · 0 评论 -
hdu1864 最大报销额
hdu1864题解 友情链接~同一个方法做的#include#includeusing namespace std;int N;double V,dp[40],p[40],MAX,sum[40];bool flag[40];void dfs(double x,int k){ if(x>V) return ; if(x>MAX) MAX=x;原创 2012-12-03 20:28:39 · 1747 阅读 · 0 评论 -
hdu2586 How far away? LCA
hdu2586#include#include#include#includeusing namespace std;#define MAX 40000struct edge{ int v,w;};vector mp[MAX];vector query[MAX];bool flag[MAX];int pre[MAX],father[MAX],path[MAX]原创 2012-12-03 11:35:42 · 1868 阅读 · 0 评论 -
hdu1558并查集+线段相交
hdu1558关于线段相交的内容参考算法导论P577#include#include#includeusing namespace std;int pre[1010],sum[1010];struct point{ double x,y;};struct EDGE{ point a,b;} edge[1010];int E;//边数 int Fi原创 2012-12-03 11:33:44 · 1479 阅读 · 0 评论 -
hdu2069Coin Change-母函数
hdu2069错解//忽略了所有硬币总数小于100的限制,导致方案数偏大 #includeusing namespace std;int main(){ int c1[260],c2[260],i,j,num,sum,P[6]={0,1,5,10,25,50}; while(scanf("%d",&sum)!=EOF) { memset(c1,0,原创 2012-09-04 21:46:12 · 848 阅读 · 0 评论 -
hdu1398母函数
#includeusing namespace std;int X[18],c1[301],c2[301];int main(){ int i,j,num,sum; for(i=1;i<=17;i++) X[i]=500;// printf("!!!!!!!!\n"); while(scanf("%d",&sum),sum) { memset(c1,0,sizeof原创 2012-09-07 18:39:40 · 906 阅读 · 0 评论 -
hdu2152Fruit-上下限母函数
hdu2152从给出的N种水果中选出限制范围最大M种然后母函数#include #includeusing namespace std; int N, M;//int A, B;struct fruit{ int A,B;} X[101];int a[105], b[105];int c1[105], c2[105];bool cmp(fruit原创 2012-09-08 20:57:41 · 812 阅读 · 0 评论 -
hdu2037今年暑假不AC 贪心
hdu2037今年暑假不AC第一次看贪心感觉很像动态规划。。。。。。。。。。。。首先对n中节目排序例如题中数据排序后为0 71 32 93 43 84 145 106 128 1810 1515 1915 20之后就是贪心的思想了用最少的时间看最多的节目#includeusing namespace std;str原创 2012-07-23 20:42:43 · 815 阅读 · 0 评论