07 day 2
又是惨烈的一天
第一题
多重背包。二进制拆分即可。
#include <stdio.h>
#define max(a,b) ((a)>(b)?(a):(b))
int n,m,i,j,k,l,a,b;
int d[11][11];
// s: time w: value
int s[10000],w[10000],pn,f[1000000];
int main(){
freopen("medic.in","r",stdin);
freopen("medic.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=0;i<n;++i){
scanf("%d%d",&a,&b);
++d[a][b];
}
for(i=1;i<11;++i){
for(j=1;j<=11;++j){
k=1;
while(d[i][j]){
if(d[i][j]>k){
s[pn]=i*k,w[pn]=j*k,++pn;
d[i][j]-=k;
k<<=1;
}else{
s[pn]=i*d[i][j],w[pn]=j*d[i][j],++pn;
d[i][j]=0;
}
}
}
}
for(i=0;i<pn;++i){
for(j=m;j>=s[i];--j){
f[j]=max(f[j],f[j-s[i]]+w[i]);
}
}
printf("%d\n", f[m]);
return 0;
}
第二题
先将数读入为素因子里2和5分别的个数,然后求出一路乘到底最少的2和5的个数,取其小者。
(DP)
#include <cstdio>
#define min(a,b) ((a)<(b)?(a):(b))
int m,n,i,j,k,f2[2000][2000],f5[2000][2000],fmin[2000][2000],d2[2000][2000],d5[2000][2000],t;
inline int countbit(int n){
t=0;
while(!(k&1)) k>>=1,++t;
return t;
}
inline int countf(int n){
t=0;
while(!(k%5)) k/=5,++t;
return t;
}
int main(){
freopen("matrix.in","r",stdin);
freopen("matrix.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=0;i<n;++i){
for(j=0;j<m;++j){
scanf("%d",&k);
d2[i][j]=countbit(k);
d5[i][j]=countf(k);
// printf("(2: %d | 5: %d) ",d2[i][j],d5[i][j]);
if(!i){
f2[i][j]=f2[i][j-1]+d2[i][j];
f5[i][j]=f5[i][j-1]+d5[i][j];
}else if(!j){
f2[i][j]=f2[i-1][j]+d2[i][j];
f5[i][j]=f5[i-1][j]+d5[i][j];
}else{
f2[i][j]=min(f2[i-1][j],f2[i][j-1])+d2[i][j];
f5[i][j]=min(f5[i-1][j],f5[i][j-1])+d5[i][j];
}
}
printf("\n");
}
printf("%d\n",min(f2[n-1][m-1],f5[n-1][m-1]));
return 0;
}
第三题
递推。太懒不写。
07 day 2的更多相关文章
- iOS系列 基础篇 07 Action动作和输出口
iOS系列 基础篇 07 Action动作和输出口 目录: 1. 前言及案例说明 2. 什么是动作? 3. 什么是输出口? 4. 实战 5. 结尾 1. 前言及案例说明 上篇内容我们学习了标签和按钮 ...
- javaSE基础07
javaSE基础07 一.static静态修饰符 用了static修饰的变量就会变成共享的属性,只会初始化一次,在内存中只存在一个,并且每个对象都可以访问,存放在方法区(数据共享区) 1.1 stat ...
- 《HelloGitHub月刊》第07期
最近工作上的事比较多,<HelloGitHub>月刊第07期拖到月底才发. 本期月刊对logo和月刊的排版进行了优化,不知道大家的反馈如何,还望大家多多反馈,让<HelloGitHu ...
- Python array,list,dataframe索引切片操作 2016年07月19日——智浪文档
array,list,dataframe索引切片操作 2016年07月19日——智浪文档 list,一维,二维array,datafrme,loc.iloc.ix的简单探讨 Numpy数组的索引和切片 ...
- 驱动开发学习笔记. 0.07 Uboot链接地址 加载地址 和 链接脚本地址
驱动开发学习笔记. 0.07 Uboot链接地址 加载地址 和 链接脚本地址 最近重新看了乾龙_Heron的<ARM 上电启动及 Uboot 代码分析>(下简称<代码分析>) ...
- NPOI 导入导出excel 支持 03 07
因为微软的office成本太高了,所以开发项目的时候电脑上没安装office,而是安装了wps.但开发语言用的是C#,所以直接调用微软的office组件是很方便的,但一方面慢,一方面成本高,所以从网上 ...
- Archlinux 2015.07.01 和 Windows7 双系统 安装教程
提前在windows7下给Archlinux预留一个分区,大小最好在20G以上(根据自己硬盘情况分配). 第一步,安装前的准备 从arch官网下载最新的ISO文件archlinux-2015.07.0 ...
- Java虚拟机JVM学习07 类的卸载机制
Java虚拟机JVM学习07 类的卸载机制 类的生命周期 当Sample类被加载.连接和初始化后,它的生命周期就开始了. 当代表Sample类的Class对象不再被引用,即不可触及时,Class对象就 ...
- AC日记——有趣的跳跃 openjudge 1.6 07
07:有趣的跳跃 总时间限制: 1000ms 内存限制: 65536kB 描述 一个长度为n(n>0)的序列中存在“有趣的跳跃”当前仅当相邻元素的差的绝对值经过排序后正好是从1到(n-1). ...
- AC日记——配对碱基链 openjudge 1.7 07
07:配对碱基链 总时间限制: 1000ms 内存限制: 65536kB 描述 脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成.而构成DNA的碱基共有4种,分别为腺瞟呤(A).鸟嘌 ...
随机推荐
- DOM学习笔记(思维导图)
导图
- IOS 遍历未知对象的属性和方法
/* 注意:要先导入ObjectC运行时头文件,以便调用runtime中的方法*/ #import <objc/runtime.h> @implementation NSObject (P ...
- abstract和接口
接口只包含常量和抽象方法,不能实例化. abstract: 1.抽象类不能实例化, 2.可以没有抽象方法.但有了抽象方法,一定要被定义为抽象类. 3.子类没有实现父类中所有的抽象方法.子类也必须定义为 ...
- HashMap的一些用法
1.HashMap的遍历 //这个是通过 迭代器iterator 来实现 HashMap的遍历 Iterator iterator=hashMap.keySet().iterator(); while ...
- python 生成器
摘自:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/00138681965108 ...
- netbeans 快捷键
前言:今天开始学习使用netbeans , 在此之前,我习惯性的使用 Eclipse 的快捷键,所以,我要改造下~ 1.Application应用程序的参数args的设置,在Build->Set ...
- Java算法-归并排序
归并排序采用的是递归来实现,属于“分而治之”,将目标数组从中间一分为二,之后分别对这两个数组进行排序,排序完毕之后再将排好序的两个数组“归并”到一起,归并排序最重要的也就是这个“归并”的过程,归并的过 ...
- Oracle中的伪列
分页查询中,需要用到伪列rownum,代码如下: select * from (select rownum rn, name from cost where rownum <= 6) where ...
- java分页
package entity; public class Page { //记录当前页的状态信息 private int num; //当前页号,采用自然数计数 1,2,3,... private i ...
- data URI
参考资料:http://www.cnblogs.com/hustskyking/p/data-uri.html 与http,ftp等协议类似,data URL也是一种协议,不同的是它直接将数据(编码或 ...