上一页 1 2 3 4 5 6 ··· 10 下一页
摘要: 题意: 俗话说一分钱难倒英雄汉,高中几年下来,吉哥已经深深明白了这个道理,因此,新年开始存储一年的个人资金已经成了习惯,不过自从大学之后他不好意思再向大人要压岁钱了,只能把唯一的希望放到自己身上。可是由于时间段的特殊性和自己能力的因素,只能找到些零零碎碎的工作,吉哥想知道怎么安排自己的假期才能获得最多的工资。 已知吉哥一共有m天的假期,每天的编号从1到m,一共有n份可以做的工作,每份工作都知道起始时间s,终止时间e和对应的工资c,每份工作的起始和终止时间以天为单位(即天数编号),每份工作必须从起始时间做到终止时间才能得到总工资c,且不能存在时间重叠的工作。比如,第1天起始第2天结束的工作... 阅读全文
posted @ 2014-04-01 16:03 Teemo的技术blog 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 题目:你可以有v1元,v2代金券,v3个物品免单,现在有n个商品,商品能用纸币或者代金券购买,当然你可以买v3个商品免费。问怎么最大能买多少价值题意:思路二维背包,dp[v1][v2][v3]=MAX(dp[v1-n.a][v2][v3]+n.value,dp[v1][v2-n.b][v3]+n.value,dp[v1][v2][v3-1]+n.value)#include #include#includeusing namespace std;int dp[110][110][6];struct node{ int value; int a; int b;}bla[110];int main 阅读全文
posted @ 2014-03-31 22:25 Teemo的技术blog 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题意:给你n个坐标,求最远的两点距离思路:用凸包算法求处,各个定点,再用旋转凸包卡壳#include #include #include #include using namespace std;#define N 50010struct node{ int x,y,d;}p[N]; int dist(node a,node b){ return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y); }int crossproduct(node a,node b,node c){ return (b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a 阅读全文
posted @ 2014-03-29 13:26 Teemo的技术blog 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 题意:略思路:直接套用凸包模板#include #include #include #include using namespace std;#define N 50010struct node{ int x,y,d;}p[N]; int dist(node a,node b){ return (a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y); }int crossproduct(node a,node b,node c){ return (b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y);}bool cmp1(node a,node 阅读全文
posted @ 2014-03-29 13:19 Teemo的技术blog 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 题意:略思路:套用ac自动机模板#include #include#includeusing namespace std;char str[11000];int total,head,tail;struct node{ node *next[130]; node *fail; int cnt,id; node(){ fail=NULL; cnt=0; memset(next,NULL,sizeof(next)); }}*q[500000]; void insert(node *root,int id){ node *p=root; int i=0,index; while(str[i])... 阅读全文
posted @ 2014-03-28 21:30 Teemo的技术blog 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 题意:需要学够n学分,有k个情况(x学分,y个相同学分的课)解法:套母函数模板#include #includeusing namespace std; int main(int argc, char** argv) { int i,j,k,t,sum; int c1[10000],c2[10000],num[120],n,m,x[120],y[120]; scanf("%d",&t); while(t--){ scanf("%d%d",&n,&m); sum=0; for(i=0;i<m;i++){ scanf(" 阅读全文
posted @ 2014-03-27 10:23 Teemo的技术blog 阅读(117) 评论(0) 推荐(0) 编辑
摘要: Robberieshttp://acm.hdu.edu.cn/showproblem.php?pid=2955背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱最脑残的是把总的概率以为是抢N家银行的概率之和…把状态转移方程写成了f[j]=max{f[j],f[j-q[i].v]+q[i].money}(f[j]表示在概率j之下能抢的大洋);正确的方程是:f[j]=max(f[j],f[j-q[i].money]*q[i].v)其中,f[j]表示抢j块大洋的最大的逃脱概率,条件是f[j-q[i].money]可达,也就是之前抢劫过;始化为:f[0]=1,其 阅读全文
posted @ 2014-03-16 16:13 Teemo的技术blog 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题意:问按规则排成的串有多少个A(c)>= B(c) >= C(c)思路:因为写大整数太累,就偷懒了一下直接用java水过import java.math.BigInteger;import java.util.Scanner;public class Main { public static void main(String[] args){ BigInteger [][][]dp=new BigInteger [65][65][65]; dp[0][0][0]=BigInteger.ONE; for(int i=1;ij)dp[i][j][k]=dp[i][j][k].add( 阅读全文
posted @ 2014-03-15 23:28 Teemo的技术blog 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 一、活动图的组成元素Activity Diagram Element1、活动状态图(Activity)2、动作状态(Actions)3、动作状态约束(Action Constraints)4、动作流(Control Flow)5、开始节点(Initial Node)6、终止节点(Final Node)7、对象(Objects)8、数据存储对象(DataStore)9、对象流(Object Flows)10、分支与合并(Decision and Merge Nodes)11、分叉与汇合(Fork and Join Nodes)12、异常处理(Exception Handler)13、活动中断区域 阅读全文
posted @ 2014-03-14 18:21 Teemo的技术blog 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 题意:n个陪审团,每个陪审团有x,y值,选出m个陪审团,要求 (sum(xi)-sum(yi))最少,当(sum(xi)-sum(yi))最少有多个,取sum(xi)+sum(yi)最大那个,并顺序输出陪审团的序号思路:先x-y,x+y存起来,再按当dp[i][j],j相同时,要值最大,当然存路径是最烦的。#include #include#include #includeusing namespace std;#define N 210int path[25][1000],map[25][1000],n,m,sub[25*10],plusa[25*10],size,ans[25];int m 阅读全文
posted @ 2014-03-10 21:43 Teemo的技术blog 阅读(108) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 10 下一页