P4026-[SHOI2008]循环的债务【dp】

正题

题目链接:https://www.luogu.com.cn/problem/P4026


题目大意

333个人,有一些面值为100,50,20,10,5,1100,50,20,10,5,1100,50,20,10,5,1的钱,一些人欠一些人钱,求最少交换多少张钞票可以还清。


解题思路

我们设fi,j,kf_{i,j,k}fi,j,k表示考虑到第iii种面值,第一个人有jjj元第二个人有kkk元时的最小交换次数。

然后dpdpdp即可。


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=7,val[7]={0,100,50,20,10,5,1},inf=2147483647/3;
int sum,a[N][N],cnt[N],s[N],f[N][1100][1100],ans;
int main()
{int x1,x2,x3;scanf("%d%d%d",&x1,&x2,&x3);for(int i=1;i<=3;i++)for(int j=1;j<=6;j++){scanf("%d",&a[i][j]);s[i]+=a[i][j]*val[j];sum+=a[i][j]*val[j];cnt[j]+=a[i][j];}memset(f,0x3f,sizeof(f));f[0][s[1]][s[2]]=0;for(int i=1;i<=6;i++)for(int j=0;j<=sum;j++)for(int k=0;k+j<=sum;k++){if(f[i-1][j][k]>=inf)continue;for(int x1=0;x1<=cnt[i];x1++)for(int x2=0;x1+x2<=cnt[i];x2++){int now1=j-(a[1][i]-x1)*val[i];int now2=k-(a[2][i]-x2)*val[i];int x3=cnt[i]-x1-x2;if(now1>=0&&now2>=0&&now1+now2<=sum)f[i][now1][now2]=min(f[i][now1][now2],f[i-1][j][k]+(abs(x1-a[1][i])+abs(x2-a[2][i])+abs(x3-a[3][i]))/2);}}int X1=s[1]+x3-x1,X2=s[2]+x1-x2,X3=s[3]+x2-x3;ans=inf+10;for(int i=0;i<=6;i++)ans=min(ans,f[i][X1][X2]);if(X1<0||X2<0||X3<0||ans>inf)return printf("impossible")&0;printf("%d",ans);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/320690.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【模拟】桐桐的新闻系统

桐桐的新闻系统 题目大意&#xff1a; 有n个人&#xff0c;每个人有自己的ID和收新闻的间隔&#xff0c;问前k次发送新闻是分别发给谁的 原题&#xff1a; 题目描述 桐桐为期末的电脑作业设计一套新闻系统&#xff0c;他把这套系统称为Argus。 使用这套系统的用户可以向这…

实体类的动态生成(三)

前言在 .NET 中主要有两种动态生成并编译的方式&#xff0c;一种是通过 System.Linq.Expressions 命名空间中的 LambdaExpression 类的 CompileToMethod(...) 方法&#xff0c;但是这种方法只支持动态编译到静态方法&#xff0c;因为这个限制我们只能放弃它而采用 Emitting 生成…

牛客网暑期ACM多校训练营(第三场)

牛客网暑期ACM多校训练营&#xff08;第三场&#xff09; A. PACM Team 01背包&#xff0c;输出方案&#xff0c;用bool存每种状态下用的哪一个物品&#xff0c;卡内存。官方题解上&#xff0c;说用char或者short就行了。还有一种做法是把用的物品压成一个int。 #include <b…

P4096-[HEOI2013]Eden的博弈树

正题 题目链接:https://www.luogu.com.cn/problem/P4096 题目大意 一个博弈树&#xff0c;黑方先手。定义一个最小的叶子节点集为黑胜状态为黑方胜利集合&#xff0c;白色亦然。求所有既属于黑方胜利集合有属于白方胜利集合的点。 解题思路 设fi,0/1f_{i,0/1}fi,0/1​表示ii…

【DP】数字编码

数字编码 题目大意&#xff1a; 有一个序列&#xff0c;可以把它分为一些子序列&#xff0c;但要按题意用字符串表示出来&#xff0c;现在要求字符串的字符最小是多少 原题&#xff1a; 题目描述 一列有顺序的非负整数&#xff0c;需要把它们编码成一个0、10、10、1字符串…

NOIP2013货车运输

NOIP2013货车运输 题目描述 A 国有 n 座城市&#xff0c;编号从 1 到 n&#xff0c;城市之间有 m 条双向道路。每一条道路对车辆都有重量限制&#xff0c;简称限重。现在有 q 辆货车在运输货物&#xff0c;司机们想知道每辆车在不超过车辆限重的情况下&#xff0c;最多能运多重…

52ABP模板 ASP.Net Core 与 Angular的开源实例项目

阅读文本大概需要 5 分钟。开始之前自从上一篇文章".NET:持续进化的统一开发平台"发布后&#xff0c;已经有三个月的时间没有写过文章了。这段时间&#xff0c;做了两场线下活动&#xff0c;一场在上海&#xff0c;一场在成都。 中途顺带去参加了微软的人工智能的ope…

jzoj1281-旅行【dp】

正题 题目大意 nnn个地方&#xff0c;第iii个高度为hih_ihi​。每次可以交换一个hjh_jhj​和hj1h_{j1}hj1​但是要满足操作的jjj递增。 解题思路 也就是可以选择若干个区间&#xff0c;然后将区间的头部丢到尾部。 发现dpdpdp的瓶颈在于我们在枚举下一个时无法知道上一个的具…

初一模拟赛总结(2019.6.15)

成绩&#xff1a; 注&#xff1a;T1好像因为精度问题&#xff0c;有一些本地对的代码交上去WA了 rankrankranknamenamenamescorescorescoreT1T1T1T2T2T2T3T3T3T4T4T4T5T5T5111lyflyflyf320320320202020100100100100100100100100100000222hkyhkyhky298298298989898100100100100…

概率期望学习笔记

概率期望学习笔记 POJ3869 题意&#xff1a;两个人转左轮手枪&#xff0c;朝自己打&#xff0c;枪里保证至少有一个空的&#xff0c;你的对手上一轮活下来了&#xff0c;现在到你了&#xff0c;问重新转左轮和直接打&#xff0c;哪个概率高。 做法&#xff1a;考虑00&#xff0…

jzoj1282-资源勘探【统计】

正题 题目链接:https://gmoj.net/senior/#contest/show/3146/2 题目大意 一个以左上角为端点的子矩形价值定义为区间内唯一的数的数量&#xff0c;求所有子矩形的权值和。 解题思路 考虑每个数字的贡献&#xff0c;对于相同的数字&#xff0c;产生贡献的右下角一定是一个若干…

Quartz.Net分布式任务管理平台(第二版)

前言&#xff1a;在Quartz.Net项目发布第一版Quartz.Net分布式任务管理平台后&#xff0c;有挺多园友去下载使用&#xff0c;我们通过QQ去探讨&#xff0c;其中项目中还是存在一定的不完善。所以有了现在这个版本。这个版本的编写完成其实有段时间了一直没有放上去。现在已经同…

【模拟】表达式求值(jzoj 1768)

表达式求值 jzoj 1768 题目大意&#xff1a; 有一个式子&#xff08;只含数字和加号乘号&#xff09;&#xff0c;让你求出结果的前四位 输入样例 输入样例#1 11*34输入样例#2 11234567890*1 输入样例#3 11000000003*1输出样例 输出样例#1 8输出样例#2 7891输出样例…

Gym101128J

Gym101128J 二分判断点是否在凸包内&#xff0c;模板更新 //Gym - 101128J #include <bits/stdc.h> #define rep(i,a,b) for(int ia;i<b;i) const double eps 1e-8; const double inf 1e20; const double pi acos(-1.0); const int maxp 10110; using namespace s…

.NET Core开发日志——WCF Client

WCF作为.NET Framework3.0就被引入的用于构建面向服务的框架在众多项目中发挥着重大作用。时至今日&#xff0c;虽然已有更新的技术可以替代它&#xff0c;但对于那些既存项目或产品&#xff0c;使用新框架重构的代价未必能找到人愿意买单。而在.NET Core平台环境中&#xff0c…

jzoj4279-[NOIP2015模拟10.29B组]树上路径【树形dp】

正题 题目链接:https://gmoj.net/senior/#main/show/4279 题目大意 nnn个点的一棵树求经过每个点的最长路径。 解题思路 设fif_{i}fi​表示iii子树内的最长路径。 我们第二次转移一个位置时我们枚举除了这个子树之外的其他子树&#xff0c;找到之外最大的fif_ifi​转移下去即…

纪中培训总结(2019年9月4~13日)

Day0&#xff08;4号&#xff09; 今天来到纪中&#xff0c;收拾了一下行李&#xff0c;然后来到机房&#xff0c;老师讲了一下规则&#xff0c;然后刷题去了 Day1&#xff08;5号&#xff09; 早上起来去吃了个早餐&#xff0c;喝了瓶奶&#xff0c;然后来到机房&#xff0…

jzoj4282-[NOIP2015模拟10.29B组]平方数游戏【构造】

正题 题目大意 构造一个ai{1,−1}a_i\{1,-1\}ai​{1,−1}使得最小化∣∑i1naii2∣|\sum_{i1}^na_ii^2|∣i1∑n​ai​i2∣ 解题思路 我们发现有对于一段连续的x2−(x1)2−(x2)2(x3)24x^2-(x1)^2-(x2)^2(x3)^24x2−(x1)2−(x2)2(x3)24&#xff0c;那么就有x2−(x1)2−(x2)2(x3)…

POJ3335(半平面交)

POJ3335 半平面交裸题 //poj3335 #include <cstdio> #include <cmath> #include <algorithm> #define rep(i,a,b) for(int ia;i<b;i) const double eps 1e-8; const double inf 1e20; const double pi acos(-1.0); const int maxp 50110;using namesp…

通过 Docker Compose 组合 ASP NET Core 和 SQL Server

本文模拟一个比较完整的项目&#xff0c;包括前端(MVC), 后端(WebApi)和数据库(mssql-server-linux)。通过Docker Compose 定义&#xff0c;组合并执行它们。涉及到 Docker Compose 安装&#xff0c;命令&#xff0c;docker-compose.yml文件编写&#xff0c;WebApi 和 MVC 项目…