hdu 1085
2024-10-15 05:35:28
额 母函数
#include <cstdio>
#include <cstring> int a[3],b[3]= {1,2,5};
int c1[10001],c2[10001],sum; int main()
{
while(scanf("%d%d%d",&a[0],&a[1],&a[2]) && a[0]+a[1]+a[2])
{
sum=a[0] + 2*a[1] + 5*a[2];
memset(c1, 0, sizeof(c1));
memset(c2, 0, sizeof(c2));
c1[0] = 1;
for(int i = 0; i < 3; i++)
{
for(int j = 0; j <= sum; j++)
if(c1[j])
for(int k = 0; j+k <= sum && k <= b[i]*a[i]; k += b[i])
c2[k+j] += c1[j];
for(int j = 0; j <= sum; j++)
{
c1[j] = c2[j];
c2[j] = 0;
}
}
int i;
for(i = 0; i <= sum; i++)
if(!c1[i])
break;
printf("%d\n",i);
}
return 0;
}
因为输出错 wa好几遍
#include <cstdio>
#include <cstring> int a[3],b[3] = {1, 2, 5};
int c[10001], sum;
int c2[10001]; int main()
{
while(scanf("%d%d%d",&a[0],&a[1],&a[2]) && a[0]+a[1]+a[2])
{
sum = a[0] + 2*a[1] + 5*a[2];
memset(c, 0, sizeof(c));
memset(c2, 0, sizeof(c2));
c[0] = 1;
int v = 0;
for(int i = 0; i < 3; i++)
{
for(int j = 0; j <= v; j++)
if(c[j])
for(int k = 1; k <= a[i]; k++)
c2[k*b[i]+j] = 1;
v += a[i]*b[i];
for(int j = 0; j <= v; j++)
{
if(!c[j])
c[j] = c2[j];
c2[j] = 0;
}
}
int i;
for(i = 0; i <= sum; i++)
if(!c[i])
break;
printf("%d\n",i);
}
return 0;
}
最新文章
- Nested Loops join时显示no join predicate原因分析以及解决办法
- SQL Server 使用全文索引进行页面搜索
- 浅谈Java中的Set、List、Map的区别(转)
- .NET跨AppDomain访问对象
- Pentaho Kettle 6.1连接CDH5.4.0集群
- Linux守护进程的启动方法
- OpenGL的glClearColor和glClear改变背景颜色
- Mybatis 实现传入参数是表名
- svn log 不显示日志的问题
- 请教如何实现UITextField值变化的实时监视
- seajs原理解析
- Android 开发中常见的注意点
- JS判断浏览器类型与版本
- day19_雷神_django第二天
- CF1114E Arithmetic Progression(交互题,二分,随机算法)
- Nginx使用Location匹配URL进行伪静态
- laravel创建资源路由控制器
- ajax异步请求该嵌套还是并列?
- Editplus php
- CentOS7防火墙之firewalld
热门文章
- Core Bluetooth Programming Guide
- Sql Server 维护计划 备份覆盖
- ASP.NET MVC 路由进阶(之二)--自定义路由约束
- AngularJS 的那些内置九种过滤器
- vs2008+qt进行开发
- 使用rapid-framework自动生成struct2
- JQuery 预热
- oracle pl/sql的操作大全
- asp.net runat=";server"; &;&; hiddenfield
- 几种placeholder替换项目参数的方法比较