题意:Roy想要抢劫银行,每家银行都有一定的金额和被抓到的概率,知道Roy被抓的最大概率P,求Roy在被抓的情况下,抢劫最多。
分析:
1、可以把各个银行的钱数加起来得到总钱数,进而看成背包的容量。
2、各个银行的钱看作重量。
3、不被抓的概率看作价值,注意这里用乘而不是加。
4、因此有状态转移方程:dp[j]=dp[j]>dp[j-mj[i]]*(1-pj[i])?dp[j]:dp...
分类:
其他好文 时间:
2015-03-14 18:35:13
阅读次数:
145
Problem Description
HDU ACM集训队的队员在暑假集训时经常要讨论自己在做题中遇到的问题.每当面临自己解决不了的问题时,他们就会围坐在一张圆形的桌子旁进行交流,经过大家的讨论后一般没有解决不了的问题,这也只有HDU ACM集训队特有的圆桌会议,有一天你也可以进来体会一下哦:),在一天在讨论的时候,Eddy想出了一个极为古怪的想法,如果他们在每一分钟内,一对相邻的两个ACM队员交换一下位子,那么要多少时间才能得到与原始状态相反的座位顺序呢?(即对于每个队员,原先在他左面的队员后来在他右面...
分类:
其他好文 时间:
2015-03-14 17:06:13
阅读次数:
170
用一个数组保存出现的字符串即可,数量用一个整形数组保存。
#include
using namespace std;
int main()
{
char a[1001][20],b[20];
int c[1001];
int n,i,k,j,sum,sumpos;
bool find;
while(cin>>n && n)
{
getchar();
memset(c,0...
分类:
其他好文 时间:
2015-03-11 19:50:03
阅读次数:
141
计算方法:
、将出生年经过的天数与18岁那年经过的天数加在一起算作一年。
、不算闰年,则18年共度过18*365天。
、考虑闰年,出生年与18岁生日合在一起那年单独考虑,其他年份只要是闰年,总天数加1天即可。
、单独考虑合在一起年份,若出生年是闰年,且在2月29日之前出生,那么他(她)必定经过2月29日这天,总天数加1;对于18岁那年,若是闰年,且在2月28日之后出生的,他(她)同样经过2...
分类:
其他好文 时间:
2015-03-11 19:44:34
阅读次数:
144
和之前的一题很像,直接套用。
#include
using namespace std;
int main()
{
int a[10001];
int n,i;
int sum,maxsum,start,maxstart,maxend;
while(cin>>n && n)
{
for(i=0;i<...
分类:
其他好文 时间:
2015-03-11 19:42:16
阅读次数:
147
方法一:计算掩码位数有两种方法,使用LOG或位运算都可以;使用LOG要注意向上取整和+3,而不是+2,+2计算不对,通不过。换底公式log a(b)=log c(b)/log c(a);C语言只有log以e为底,log10以10为底。
#include
#include
using namespace std;
int GetNum(int x)
{
double y;
y=log10...
分类:
其他好文 时间:
2015-03-11 17:29:36
阅读次数:
137
借助C语言中的库函数strstr,可以避免写KMP;循环判断即可。
#include
using namespace std;
int main()
{
char a[200001],b[100001];
int i,len;
bool f;
while(gets(a))
{
f=0;
gets(b);
if(strlen(b)>strlen(a)) cout<...
分类:
其他好文 时间:
2015-03-11 17:24:17
阅读次数:
117
解析:
1、可以从中任选m个人(n=>m>=2),有Cn(m)中选择;
2、再把这m个人分2组(每个人都要分组),要使满足最小ac数大于最大ac数,只需要在m个人中插板即可;
例如:
m个人假如分别为 :
1,2,3,4,......m-1,m (m个人的ac数从小到大排列)
只需在任意位置插板就可分为符合要求的2组:
1,2,3......t, || t+1...m-1,m (1
...
分类:
其他好文 时间:
2015-03-11 17:18:01
阅读次数:
122
注意只有一个负数时,负数也算最大值。
#include
using namespace std;
int main()
{
int a[100001];
int T,T2=0,n,i;
int sum,maxsum,start,maxstart,maxend;
cin>>T;
while(T--)
{
cin>>n;
for(i=0;i>a...
分类:
其他好文 时间:
2015-03-11 17:10:39
阅读次数:
104
一定要注意IP的长度不能超过15位。
方法一:
#include
using namespace std;
bool f(char* p)
{
int state,sum;
state=sum=0;
while(true)
{
switch(state)
{
case 0:
case...
分类:
其他好文 时间:
2015-03-11 14:50:29
阅读次数:
115