题目一:传送门

题意:有一个4*4的棋盘,每次翻转一个棋子和它的上下左右的四个棋子,判断翻转多少次之后可以变为纯色的棋盘。

思路:总共有C(0,16)+C(1,16)+C(2,16)+……+C(16,16)=2^16次,所以最多有16个棋子被翻动,然后从(0,0)个棋子开始,依次翻转其他棋子,

判断最少要翻转多少个棋子,记着要回溯。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int INF = ;
char str[][];
int a[][],mi,zz[][]={,, ,, ,-, ,, -,};
void turn(int x,int y)
{
for(int i=;i<;i++)
{
int x1=x+zz[i][];
int y1=y+zz[i][];
if(x1>=&&x1<&&y1>=&&y1<)
{
a[x1][y1]=!a[x1][y1];
}
}
}
bool pd()
{
for(int i=;i<;i++)
{
for(int j=;j<;j++)
if(a[][]!=a[i][j]) return false;
}
return true;
}
void dfs(int x,int y,int num)
{
if(pd())
{
mi=mi>num?num:mi;
return ;
}
if(x==) return ;
turn(x,y);
if(y==) dfs(x+,,num+);
else dfs(x,y+,num+);
turn(x,y);
if(y==) dfs(x+,,num);
else dfs(x,y+,num);
}
int main(void)
{
int i,j,n,m;
for(i=;i<;i++) scanf("%s",str[i]);
for(i=;i<;i++)
{
for(j=;j<;j++)
a[i][j]=str[i][j]=='b'?:;
}
mi=INF;
dfs(,,);
if(mi<=) printf("%d\n",mi);
else printf("Impossible\n");
return ;
}

题目二:传送门

题意:有n个种硬币,最大不超过m,给出每种硬币的价值和数量,求不超过m的情况下能组成多少种价格。

思路:多重背包;

(注意:当时因为审题不清,没理解多少种价格的意思,其实就是dp[i]==i的情况)。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = ;
int val[maxn],num[maxn],dp[maxn],a[maxn*];
int MAX(int x,int y)
{
return x>y?x:y;
}
int main(void)
{
int n,m,i,j,pt,cnt;
while(scanf("%d%d",&n,&m)&&(n+m))
{
memset(dp,,sizeof(dp));
memset(a,,sizeof(a));
for(i=;i<=n;i++) scanf("%d",&val[i]);
for(pt=,i=;i<=n;i++)
{
scanf("%d",&cnt);
for(j=;j<=cnt;j*=)
{
a[pt++]=j*val[i];
cnt-=j;
}
if(cnt>) a[pt++]=cnt*val[i];
}
for(i=;i<pt;i++)
{
for(j=m;j>=a[i];j--)
dp[j]=MAX(dp[j],dp[j-a[i]]+a[i]);
}
int ans=;
for(i=;i<=m;i++)
if(i==dp[i]) ans++;
printf("%d\n",ans);
}
return ;
}

假期训练六(poj-1753,递归+hdu-2844,多重背包)的更多相关文章

  1. hdu 2844 多重背包coins

    http://acm.hdu.edu.cn/showproblem.php?pid=2844 题意: 有n个硬币,知道其价值A1.....An.数量C1...Cn.问在1到m价值之间,最多能组成多少种 ...

  2. hdu 2844 多重背包+单调队列优化

    思路:把价值看做体积,而价值的大小还是其本身,那么只需判断1-m中的每个状态最大是否为自己,是就+1: #include<iostream> #include<algorithm&g ...

  3. Coins(hdu 2844 多重背包)

    Coins Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  4. hdu 2844 多重背包二进制优化

    //http://www.cnblogs.com/devil-91/archive/2012/05/16/2502710.html #include<stdio.h> #define N ...

  5. hdu 2844 多重背包的转化问题 以及这个dp状态的确定

    在杭电上测试了下 这里的状态转移方程有两个.,. 现在有价值val[1],val[2],…val[n]的n种硬币, 它们的数量分别为num[i]个. 然后给你一个m, 问你区间[1,m]内的所有数目, ...

  6. hdu 5445 多重背包

    Food Problem Time Limit: 3000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)To ...

  7. POJ 2392 Space Elevator(贪心+多重背包)

    POJ 2392 Space Elevator(贪心+多重背包) http://poj.org/problem?id=2392 题意: 题意:给定n种积木.每种积木都有一个高度h[i],一个数量num ...

  8. POJ 3260 The Fewest Coins(多重背包+全然背包)

    POJ 3260 The Fewest Coins(多重背包+全然背包) http://poj.org/problem?id=3260 题意: John要去买价值为m的商品. 如今的货币系统有n种货币 ...

  9. hdu 2844 混合背包【背包dp】

    http://acm.hdu.edu.cn/showproblem.php?pid=2844 题意:有n种纸币面额(a1,a2,...an),每种面额对应有(c1,c2,...cn)张.问这些钱能拼成 ...

  10. hdu 2191 多重背包 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活

    http://acm.hdu.edu.cn/showproblem.php?pid=2191 New~ 欢迎“热爱编程”的高考少年——报考杭州电子科技大学计算机学院关于2015年杭电ACM暑期集训队的 ...

随机推荐

  1. Unicode编码字符范围和具体文字

    1)标准CJK文字 http://www.unicode.org/Public/UNIDATA/Unihan.html 2)全角ASCII.全角中英文标点.半宽片假名.半宽平假名.半宽韩文字母:FF0 ...

  2. Delphi: TMethod转普通方法为对象方法

    回看旧时代码,以往清楚之记忆渐渐模糊,事隔多年,遗忘正在发生. TMethod方法,当初熟练再看已陌生,再做复习以作备忘. 简言之,它做为一相桥接,将普通事件或方法转换为类方法,其多用于事件动态设置中 ...

  3. QQ分享登陆报错

    linker command failed with exit code 1 (use -v to see invocation)报错原因 builtSetting下搜索 bitco 改为NO

  4. URL编码表、Base64编码表、HTTP消息含义

    URL编码表 backspace 8% A 41% a 61% § %A7 Õ %D5 tab 9% B 42% b 62% « %AB Ö %D6 linefeed %0A C 43% c 63% ...

  5. wampserver 403forbidden问题

    1.c:\wamp\alias\phpmyadmin.conf 打开之后又这么一段源码; <Directory "D:\wamp\apps\phpmyadmin3.4.10.1/&qu ...

  6. 11-web网页制作APP

    如何将H5和WebApp 加壳成apk.ipa     问题:已经做好的纯H5的站点 想分别加两个壳子,变成apk和ipa ,要怎么实现? 要点: 1. app只是壳子,打开app直接跳转到H5的Ur ...

  7. 26- java的String 转json

    https://www.cnblogs.com/nihaorz/p/5885307.html Gjson 下载:https://download.csdn.net/download/qq_394515 ...

  8. css兼容性写法大全

    淘宝初始化代码 body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset ...

  9. pthreads v3下一些坑和需要注意的地方

    一.子线程无法访问父线程的全局变量,但父线程可以访问子线程的变量 <?php class Task extends Thread { public $data; public function ...

  10. stark组件开发之提取公共视图函数

     路由问题, 已经解决! 然后就是视图函数的问题了: 不想重复写的解决途径就是, python  类的继承了! 写一个基类, 基类定义 增删改查. 然后其他的,全部去继承他! from django. ...