首页 > 其他分享 >信息学奥赛一本通 1344:【例4-4】最小花费(同东方博宜OJ 2050. 最少的手续费)

信息学奥赛一本通 1344:【例4-4】最小花费(同东方博宜OJ 2050. 最少的手续费)

时间:2024-12-20 21:02:54浏览次数:6  
标签:转账 2050 正整数 OJ int 1344 输入 2005 手续费

【题目描述】

在n个人中,某些人的银行账号之间可以互相转账。这些人之间转账的手续费各不相同。给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问A最少需要多少钱使得转账后B收到100元。

【输入】

第一行输入两个正整数n,m,分别表示总人数和可以互相转账的人的对数。

以下m行每行输入三个正整数x,y,z,表示标号为x的人和标号为y的人之间互相转账需要扣除z%的手续费 (z<100)。

最后一行输入两个正整数A,B。数据保证A与B之间可以直接或间接地转账。

【输出】

输出A使得B到账100元最少需要的总费用。精确到小数点后8位。

【输入样例】

3 3
1 2 1
2 3 2
1 3 3
1 3

【输出样例】

103.07153164

【提示】

【数据规模】

1<=n<=2000

东方博宜中有这样一个数量关系式

转账后另一个账户收到的费用 = 转账费用 - 手续费

有了这个式子

解这道题就不难了

参考代码如下

#include<bits/stdc++.h>
using namespace std;
int n,m1;
double m[2005][2005];
int v[2005]={0};
double d[2005];
int s,t;
void bfs(int s)
{
    for(int i=1;i<=n;i++)
	{
		d[i]=m[s][i];
	}
    v[s]=1;
    d[s]=0;
    for(int i=1;i<=n-1;i++)
	{
        int u;
        double maxn=0;
        for(int j=1;j<=n;j++)
		{
            if(v[j]==0&&d[j]>maxn)
			{
                maxn=d[j];
                u=j;
            }
        }
        v[u]=1;
        if(u==t)
		{
		   break;	
		}
        for(int j=1;j<=n;j++)
		{
            if(v[j]==0&&d[u]*m[u][j]>d[j])
			{
			   d[j]=m[u][j]*d[u];	
			}
        }
    }
 
}
int main()
{
    scanf("%d%d",&n,&m1);
    for(int i=0;i<m1;i++){
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        m[a][b]=1.0*(100-c)/100;
        m[b][a]=1.0*(100-c)/100;
    }
    scanf("%d%d",&s,&t);
    bfs(s);
    cout<<fixed<<setprecision(8)<<100/d[t];
    return 0;
}

希望你们给本博主的文章,写几条评论,我会回关你们哦! 

标签:转账,2050,正整数,OJ,int,1344,输入,2005,手续费
From: https://blog.csdn.net/2401_83082454/article/details/144619408

相关文章

  • QOJ7855 不跳棋
    题意给定一棵树,有\(n\)个点,每个点上有一枚棋子,有\(n-2\)次操作,每次操作拿走一枚棋子,操作后问任意两个棋子间距离的最小值以及方案数,强制在线。\(n\le5\times10^5\)分析注意到我们只关系两个点之间的距离而对其他的诸如祖先关系啥的不关系,因而考虑点分树,对于点分树上的每......
  • 配置ubuntu做路由器脚本,配置linux系统做路由器脚本,trojan透明代理配置.
    以下脚本在ubuntu18.04上测试成功,不兼容iptables被替换成nftables的版本。 透明代理在家庭网络和企业网络中都得到了广泛的应用,尤其是在网络安全和性能优化方面。优点:无需客户端配置:客户端不需要进行任何设置,代理是由路由器自动处理的。可用于流量监控与管理:透明代理可以......
  • [BZOJ3489] A simple rmq problem
    考虑当没有强制在线时,容易想到一个点\(i\)所影响的区间\([l,r]\)满足\(pr_i<l\lei,i\ler<nx_i\)。显然可以转化为矩阵修改,单点求\(\max\)的问题。那扫描线\(+\set\)轻松拿下。强制在线就把线段树换成主席树就可以了。注意这里不能下传标记,所以得用标记永久化。但是......
  • ZZNUOJ_1341:简单密码破解(C/C++/Java)
    题目描述密码是我们生活中非常重要的东东,我们的那么一点不能说的秘密就全靠它了。哇哈哈. 接下来渊子要在密码之上再加一套密码,虽然简单但也安全。 假设渊子原来一个BBS上的密码为zvbo941987,为了方便记忆,他通过一种算法把这个密码变换成YUANzi1987,这个密码是他的名......
  • idea构建Build Project项目时一直卡在解析阶段解决办法
    可能是内存不足,修改以下三个地方1、help->EditCustomVMOptions-Xmx4096m2、file->settings->Build,Execution,Deployment->BuildTools->Maven->Importing的VMoptionsforimporter写入参数-Xmx4096m3、file->settings->Build,Execution,Deployment->Compiler的Sh......
  • 浙江工商大学 ZJGSU OJ 2037. 个人信息管理系统
    目录题面思路重点代码题面2037.个人信息管理系统描述小张是同学会的负责人,但是复杂的联系信息让他很头痛,请你帮他写一个个人信箱的管理系统(人数小于30人),每个人包含3项信息:姓名(小于20个字符) 性别(Female=女,Male=男) 生日(年月日)每个人用一个结构体表示,......
  • 浙江工商大学 ZJGSU OJ 2514. 我找还是你找
    目录题面思路重点代码题面2514.我找还是你找描述某公司仓库从有很多刚生产出来的棍子,小Y要从仓库中找到这样一根棍子,这根棍子的要求如下(优先级1>2>3):1、这根棍子一定要是仓库中最长的;2、这根棍子一定要是最长的棍子中最细的;3、这根棍子一定要是符合前两条的......
  • pojo实体bool字段不要加is前缀
    pojo实体bool字段不要加is前缀,在lombok这类工具自动的getter,setter方法时,对于布尔类型,它有自己的命名规则,boolean会把getter方法添加统一前缀is,如boolean的getter方法就是isDefault(),而如果你的字段也命名为isDefault,那么在反序化时可能出现歧义(default不是isDefault);而问题更......
  • YbtOj题解索引
    不想写作业,水篇博客图论:并查集(已完结)最小生成树(已完结)强连通分量(已完结)最短路径(已完结)数据结构:堆(已完结)RMQ问题(未完结)树状数组(未完结)动态规划:数位DP(未完结)......
  • 论文解读《The Philosopher’s Stone: Trojaning Plugins of Large Language Models
    发表时间:2025期刊会议:NetworkandDistributedSystemSecurity(NDSS)Symposium论文单位:ShanghaiJiaoTongUniversity论文作者:TianDong,MinhuiXue,GuoxingChen,RayneHolland,YanMeng,ShaofengLi,ZhenLiu,HaojinZhu方向分类:BackdoorAttack论文链接开源......