
ACM_HDU
zytjyh
努力,也是一种天赋
展开
-
HDU 3008(dp46)
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int magic[105];int attack[105];int dp[105][105];int main(){ int n,t,q; while(scanf("%d%d%d",&n原创 2016-08-14 22:28:03 · 376 阅读 · 0 评论 -
Codeforce Round 363(Div2)A(Java)
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n; char ch[]; while(in.hasNext())原创 2016-09-04 08:26:10 · 308 阅读 · 0 评论 -
HDU1040(Java)
import java.io.*;import java.util.*;public class Main{ public static void main(String args[]) { Scanner in=new Scanner(System.in); int T;原创 2016-09-04 08:24:26 · 317 阅读 · 0 评论 -
HDU5115(区间dp)详解
题目大意:你是一个战士现在面对,一群狼,每只狼都有一定的主动攻击力和附带攻击力。你杀死一只狼。你会受到这只狼的(主动攻击力+旁边两只狼的附带攻击力)这么多伤害~现在问你如何选择杀狼的顺序使的杀完所有狼时,自己受到的伤害最小。(提醒,狼杀死后就消失,身边原本相隔的两只狼会变成相邻,而且不需要考虑狼围城环这种情况)输入要求:总共T组数据,每组N只狼,按顺序输入全部狼的主动攻击力和然后再按顺序输入全部狼的原创 2016-08-08 14:22:47 · 3241 阅读 · 2 评论 -
HDU3905(区间dp)详解
题目大意:ZZZ在上课,这堂课N分钟,他必须睡M分钟,如果他听课至少听L分钟的课,每分钟的课都有对应的分数,求如何使他在睡满M分钟的情况下,得分最高。输入要求:N分钟的课堂,至少睡M分钟,每次最少听L分钟(以EOF结尾)输出要求:最高得分样例数据分析: 输入10 3 31 2 3 4 5 6 7 8 9 10 前3分钟睡觉:4+5+6+7+8+9+10=49;输出49原创 2016-08-08 15:43:32 · 392 阅读 · 0 评论 -
HDU 2571 路径权值最大
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int a[25][1005];int dp[25][1005];int main(){ int C; scanf("%d",&C); while(C--) {原创 2016-08-09 16:45:45 · 693 阅读 · 0 评论 -
HDU 2602 01背包
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int dp[1001];int volume[1001],value[1001];int main(){ int t; scanf("%d",&t); while(t--)原创 2016-08-09 16:43:53 · 306 阅读 · 0 评论 -
HDU1505 1506升级版
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;//#include<algorithm>using namespace std;为了调用库函数maxint dp[1005][1005];int l[1005],r[1005];int main(){原创 2016-08-09 16:43:07 · 337 阅读 · 0 评论 -
HDU 1506 不会则直方图最大矩形
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;//#include<algorithm>using namespace std;为了调用库函数max__int64 dp[100005]; //因为高已经很大了乘上底会更大,所以用__int64__int64 h[100005],l[10000原创 2016-08-09 16:42:23 · 339 阅读 · 0 评论 -
HDU1003
#include<stdio.h>int main(){ int t,n,a,i,j,start,end,temp; start=1,end=1; long max,sum; scanf("%d",&t); for(i=1;i<=t;i++) { sum=0; temp=1; max=-1001;原创 2016-08-09 16:41:08 · 278 阅读 · 0 评论 -
HDU 1231 最长连续子序列
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;//#include<algorithm>using namespace std;为了调用库函数maxint dp[10005];int main(){ int a[10005]; int start[10005],end[1原创 2016-08-09 16:40:32 · 373 阅读 · 0 评论 -
HDU2955 01背包
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;//#include<algorithm> using namespace std;这两句是因为下面要调用库函数中的max函数double dp[10005];//储存的是不被抓到的概率,最多一百家银行,每家最多抢100,所以取10005stru原创 2016-08-09 16:37:51 · 327 阅读 · 0 评论 -
HDU4283(区间dp)详解
题目大意:有 n 个人,每个人有一个diaosi[i]值,如果第 i 个人排在第 k 位置,则他的愤怒值就为diaosi[i]*(k-1);等待过程中有一个黑屋子,可以把人暂时放到黑屋子里。使总的愤怒值最小;输入要求:T组数据,n个人,每个人的愤怒值输出要求:Case #2: 最小愤怒值思路引导:这是一道区间dp题。我们用dp[i][j]表示第i个人到第j个人unhappiness总和的最小值,因此原创 2016-08-08 17:01:43 · 1237 阅读 · 1 评论 -
HDU 1864 01背包(小数扩大)
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;//#include<algorithm>using namespace std;为了调用库函数maxint dp[3000005];//最多三十张每张最多1000,因为小数点后两位再乘100int main(){ double Q;原创 2016-08-09 16:39:05 · 505 阅读 · 0 评论 -
HDU1087 最大子序列和
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int a[1005];int dp[1005];int main(){ int N; int i,j; while(scanf("%d",&N)) {原创 2016-08-09 16:44:49 · 283 阅读 · 0 评论 -
HDU2012(Java)
package Main;import java.io.*;import java.util.*;public class Main{ public static void main(String args[]) { Scanner in=new Scanner(System.in);原创 2016-09-04 08:31:14 · 965 阅读 · 0 评论 -
HDU2476(区间DP)详解
题目大意:每次输入两串字符串,把第一串变成第二串,但是你每次只能把字符串中一段连续的子串变成一同一种字符串,问你总共需要几次才能完成?输入要求:两串字符,字符串最长为100。输出要求:需要改变的次数。样例解释: 开始zzzzzfzzzzz 第一次:aaaaaaaaaaa 第二次:abbbbbbbbba 第三次:abcccccccba 第四次:abcdddddcba 第五次:abcdeee原创 2016-08-08 08:30:20 · 1113 阅读 · 3 评论 -
HDU 1501(dp46)
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;bool dp[205][205];char str1[205],str2[205],str3[410];int main(){ int T; scanf("%d",&T); str原创 2016-08-14 22:27:19 · 356 阅读 · 0 评论 -
HDU 1300(dp46)
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int number[105],price[105];int dp[105];int main(){ int T; scanf("%d",&T); while(T--) {原创 2016-08-14 22:26:38 · 337 阅读 · 0 评论 -
HDU 1422(dp46)
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int dp[200005];int main(){ int n; while(scanf("%d",&n)!=EOF) { int i; int a,原创 2016-08-14 22:25:52 · 320 阅读 · 0 评论 -
HDU 1074(dp46)(状态压缩dp)
#include<iostream> #include<cstdio>#include<cstring>#include<algorithm> #include<stack>using namespace std;const int INF=0x3f3f3f3f;struct node1{ string name; int deadline; int cost;原创 2016-08-14 22:25:11 · 345 阅读 · 0 评论 -
HDU 1080(dp46)
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int dp[1005][1005];char str1[1005],str2[1005];int map[5][5]={{5,-1,-2,-1,-3}, {-1,5,-3,-2原创 2016-08-14 22:23:59 · 303 阅读 · 0 评论 -
HDU 2191(dp46)
单调队列#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int n,m;int i,j,k;int p[105],h[105],c[105];int dp[2500];void MPqueue(int dp[], int SumValue, int v原创 2016-08-14 22:23:12 · 289 阅读 · 0 评论 -
HDU 2870 (dp46)
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;char map[1005][1005];int dp[1005][1005];int l[1005];int r[1005];int Max;int n,m;void DP(){ int原创 2016-08-14 22:21:28 · 381 阅读 · 0 评论 -
HDU 2577(dp46)
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int dp[105][2];char str[105];int main(){ int num; int i; scanf("%d\n",&num); while(num-原创 2016-08-14 22:20:29 · 323 阅读 · 0 评论 -
HDU 2159(dp46)
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int a[105], b[105];int dp[105][105];int main(){ int N, M, K, S, i, j, k; while(scanf("%d%d%d%d",原创 2016-08-14 22:19:45 · 261 阅读 · 0 评论 -
HDU 1203(dp46)
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;double dp[10005];struct node{ int money; double pro;}school[10005];int main(){ int n,m;原创 2016-08-14 22:18:24 · 258 阅读 · 0 评论 -
HDU 2048 (dp46)
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int dp[105][105];int a[105][105];int main(){ int C; scanf("%d",&C); while(C--) {原创 2016-08-14 22:17:24 · 359 阅读 · 0 评论 -
HDU 1171(dp46)
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int dp[500000];int value[1005];int number[1005];int MidSum;int Sum;int i;void Complete()//完全背包{原创 2016-08-14 22:16:18 · 299 阅读 · 0 评论 -
HDU 3001(状态压缩dp)
#pragma warning(disable:4996)#include <iostream>#include <cstring>#include <cstdio>#include <cmath>#include<algorithm>using namespace std;const int INF = 0x3f3f3f3f;int route[15][15];int dp[1 <原创 2016-08-12 16:05:28 · 495 阅读 · 0 评论 -
HDU4284(状态压缩dp)
未完待续#pragma warning(disable:4996)#include <iostream>#include <cstring>#include <cstdio>#include <cmath>#include<algorithm>using namespace std;const int INF = 0x3f3f3f3f;const int MAX = (1 << 16)原创 2016-08-13 22:21:15 · 323 阅读 · 0 评论 -
HDU 1074 (状态压缩dp)详解
题目意思:Ignatius同学,快到期末了结果还有好多课程没有完成,每门课作业都有对应的截至日期,和完成它所需的时间,超过截至日期后,没多一天扣1分,现在文他该如何安排写作业的顺序使得被扣的分最少?输入要求:T组数据,N门课,每门课的截至日期和完成所需的时间输出要求:被扣的分,和写作业的顺序。(如果有不同顺序扣分相同的出现,输出字典序)题目提示:1.因为最多只有15门课,所以1<<15在一个可以接受原创 2016-08-10 17:01:45 · 648 阅读 · 0 评论 -
HDU 5691(状态压缩dp)详解
中文不解释~#include <stdio.h>#include <string.h>#include <stdlib.h>#include <iostream>#include <algorithm>using namespace std;const int INF=0x3f3f3f3f;int a[20],p[20];int dp[(1<<20)][20];int main()原创 2016-08-10 19:55:13 · 415 阅读 · 0 评论 -
HDU 4284(状态压缩dp)
#include<stdio.h>#include<string.h>#define max(a,b)(a)>(b)?(a):(b)#define INF 0x3f3f3f3fint g[155][155];int dp[1<<16][16];int num[22];int earn[22];int cost[22];int main(){ int t,i,j,k,mon原创 2016-08-10 20:27:23 · 294 阅读 · 0 评论 -
HDU 1503(字符串,合并输出)
#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#include<algorithm>#include<iostream>#include<time.h>using namespace std;int dp[105][105];int mark[105];int pat原创 2016-08-19 14:51:18 · 571 阅读 · 0 评论 -
HDU 1227(区间dp)
#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#include<algorithm>#include<iostream>#include<time.h>using namespace std;int dp[35][205];int pos[205];int f[205原创 2016-08-19 11:20:11 · 301 阅读 · 0 评论 -
Java(命令行参数使用)
public class MainTest { public static void main(String args[]) {//String[] args也行 int n=args.length; if(n==0) System.out.println("no parament !"); else {原创 2016-08-29 19:12:07 · 1399 阅读 · 0 评论 -
HDU 2001(Java)
import java.util.Scanner;public class Main{ public static void main(String[] args) { double x1,x2,y1,y2; Scanner in=new Scanner(System.in); while(in.hasNext()) {原创 2016-08-29 16:22:59 · 510 阅读 · 0 评论 -
HDU 1002(Java)
import java.math.BigInteger;import java.util.Scanner;public class Main { public static void main(String[] args) { int T; Scanner in=new Scanner(System.in); T=in.nextInt();原创 2016-08-29 15:50:55 · 622 阅读 · 0 评论 -
HDU 1000(Java)
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); int a; int b; while(in.hasNextInt())原创 2016-08-29 15:10:45 · 643 阅读 · 0 评论