POJ 3835 Columbus's bargain 最短路

MATLAB集成NIFTI工具包实战:从安装到脑MRI数据重采样全流程解析 本文详细解析了MATLAB集成NIFTI工具包的全流程,从安装配置到脑MRI数据重采样的实战操作。通过核心函数`reslice_nii`的参数详解和实战案例,帮助研究者高效处理不同分辨率的脑成像数据,确保神经影像研究的准确性和一致性。特别针对脑MRI重采样技术提供了优化策略和常见问题解决方案。 阅读详情

Description

On the evening of 3 August 1492, Christopher Columbus departed from Palos de la Frontera with a few ships, starting a serious of voyages of finding a new route to India. As you know, just in those voyages, Columbus discovered the America continent which he thought was India.

Because the ships are not large enough and there are seldom harbors in his route, Columbus had to buy food and other necessary things from savages. Gold coins were the most popular currency in the world at that time and savages also accept them. Columbus wanted to buy N kinds of goods from savages, and each kind of goods has a price in gold coins. Columbus brought enough glass beads with him, because he knew that for savages, a glass bead is as valuable as a gold coin. Columbus could buy an item he need only in four ways below:

  1. Pay the price all by gold coins.
  2. Pay by ONE glass bead and some gold coins. In this way, if an item's price is k gold coins, Columbus could just pay k - 1 gold coins and one glass bead.
  3. Pay by an item which has the same price.
  4. Pay by a cheaper item and some gold coins.

Columbus found out an interesting thing in the trade rule of savages: For some kinds of goods, when the buyer wanted to buy an item by paying a cheaper item and some gold coins, he didn't have to pay the price difference, he can pay less. If one could buy an item of kind A by paying a cheaper item of kind B plus some gold coins less than the price difference between B and A, Columbus called that there was a "bargain" between kind B and kind A. To get an item, Columbus didn't have to spend gold coins as many as its price because he could use glass beads or took full advantages of "bargains". So Columbus wanted to know, for any kind of goods, at least how many gold coins he had to spend in order to get one - Columbus called it "actual price" of that kind of goods.

Just for curiosity, Columbus also wanted to know, how many kinds of goods are there whose "actual price" was equal to the sum of "actual price" of other two kinds.

Input

There are several test cases.

The first line in the input is an integer T indicating the number of test cases (0 < T <= 10).


For each test case:

The first line contains an integer N, meaning there are N kinds of goods (0 < N <= 20). These N kinds are numbered from 1 to N.

Then N lines follow, each contains two integers Q and P, meaning that the price of the goods of kind Q is P. (0 < Q <= N, 0 < P <= 30)

The next line is a integer M (0 < M <= 20), meaning there are M "bargains".

Then M lines follow, each contains three integers N1, N2 and R, meaning that you can get an item of kind N2 by paying an item of kind N1 plus R gold coins. It's guaranteed that the goods of kind N1 is cheaper than the goods of kind N2 and R is none negative and less than the price difference between the goods of kind N2 and kind N1. Please note that R could be zero.

Output

For each test case:

Please output N lines at first. Each line contains two integers n and p, meaning that the "actual price" of the goods of kind n is p gold coins. These N lines should be in the ascending order of kind No..

Then output a line containing an integer m, indicating that there are m kinds of goods whose "actual price" is equal to the sum of "actual price" of other two kinds.

Sample Input

141 42 93 54 1321 2 33 4 6

Sample Output

1 32 63 44 101

score:
#include<cstdio>
using namespace std;
#define M 37
#define MAX 900000000
int g[M][M];
int main()
{
    int T,n,i,j,u,v,p,m,k;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d",&n);
        for(i=0;i<=n;i++)
        {
            for(j=0;j<=n;j++)
            {
                g[i][j]=MAX;
            }
        }
        for(i=0;i<n;i++)
        {
            scanf("%d%d",&u,&v);
            g[0][u]=v-1;
        }
        scanf("%d",&m);
        for(i=0;i<m;i++)
        {
            scanf("%d%d%d",&u,&v,&p);
            g[u][v]=p;
        }
       
        for(i=1;i<n;i++)
        {
            for(j=i+1;j<=n;j++)
            {
                if(g[0][i]==g[0][j])  //At begine v[i]==v[j],but final v[i] may become smaller.
                {
                    g[i][j]=g[j][i]=0;
                }
            }
        }
       
        //最短路
        bool bbc;
        do
        {
            bbc=false;
            for(i=0;i<=n;i++)
            {
                for(j=0;j<=n;j++)
                {
                    for(k=0;k<=n;k++)
                    {
                        if(g[i][j]+g[j][k] < g[i][k])
                        {
                            g[i][k] = g[i][j] + g[j][k];
                            bbc=true;
                        }
                    }
                }
            }
        }while(bbc);
       
        for(i=1;i<=n;i++)
        {
            printf("%d %d\n",i,g[0][i]);
        }
        int ans=0;
        for(i=1;i<=n;i++)
        {
            bool bans=true;
            for(j=1;j<=n&&bans;j++)
            {
                for(k=1;k<=n&&bans;k++)
                {
                    if( i!=j && j!=k && i!=k && g[0][i] == g[0][j] + g[0][k])
                    {
                        ans++;
                        bans=false;
                    }
                }
            }
        }
        printf("%d\n",ans);
    }
    return 0;
}
移动应用畅销榜预测数据集10000款应用19特征 本数据集模拟移动应用商店的运营特征,包含10000款应用、19个字段、单CSV约937KB。字段覆盖应用类别(12类)、商业模式(免费、广告、内购、订阅、付费)、发布年份、内容分级、安装包大小、单次会话广告加载量、年更新次数、距上次更新天数、商店编辑推荐、买量支出、平均评分、次日与30日留存率,以及评分总数、累计下载量与营收等结果字段。提供top_grossing分类目标(营收前15%)与revenue_musd回归目标,结果字段独立分离,便于练习避免目标泄漏。数据完整无缺失、无需表关联,非线性效应与特征交互明显,调优后模型可超越朴素基线,兼具入门友好与研究深度,适合移动应用行业分析、商业化策略研究与机器学习教学。说明:本数据为Python生成的合成数据,仅反映生成规则,不含真实应用与个人信息。许可:CC0公有领域,可自由使用与二次分发。 立即下载

相关推荐

预算约束下的备件库存:MATLAB中的边际分配与动态规划,最小化预期欠单.rar

预算约束下的备件库存:MATLAB中的边际分配与动态规划,最小化预期欠单.rar

POJ 3835 & HDU 3268 Columbus’s bargain(最短路 Spfa)

题目链接: POJ:http://poj.org/problem?id=3835 HDU:http://acm.hdu.edu.cn/showproblem.php?pid=3268 Problem Description On the evening of 3 August 1492, Christopher Columbus departed from Pa...

weixin_33766168的博客 178

Delphi 13.2控件之sbridge-12.1.0-d7pro.exe

Delphi 13.2控件之sbridge_12.1.0_d7pro.exe

POJ 3835 Columbus's bargain

题目大意: 题目链接 zhus

源代码 673

chrome-headless-shell-linux64-159.0.8145.0(Canary).zip

内容概要:Chrome for Testing 官方 chrome-headless-shell 159.0.8145.0 linux64 平台(金丝雀版通道),原版未修改,附来源说明。 适合人群:Linux 64 位 上的自动化测试工程师、爬虫开发者、CI 环境搭建者。 使用场景及目标:①无头浏览器(Playwright/Puppeteer/Selenium 无界面自动化与爬虫的运行内核);②服务器/容器离线内置;③版本精准匹配(chromedriver 与 Chrome 需同大版本)。 其他说明:Chrome for Testing 为 Google 官方发布、允许自由分发的文件;本资源为第三方整理的下载便利服务。

对外一种类型,对内几副身形:Redis键空间管理、五大类型内部编码与场景选型解析代码包

想解决的就是这道“会用”和“用好”之间的缝隙。它回答四个具体问题: 一个 Redis 实例应该怎样启动、连接和关闭,哪些做法会在重启后丢数据; 管理键的那一组命令(EXISTS、DEL、EXPIRE、RENAME、KEYS、SCAN……)各自的代价是什么,哪些会把主线程卡住; 对外只有五种类型,对内却有十来种编码,它们何时切换、为何切换、切换后内存差多少; 每种类型最适合什么访问模式,常见场景(缓存、计数、限流、队列、标签、排行榜、延迟队列、分页)应该怎样写才不踩坑。

HDU 3268 Columbus’s bargain

On the evening of 3 August 1492, Christopher Columbus departed from Palos de la Frontera with a few ships, starting a serious of voyages of finding a new route to India. As you know, just in those voy

Occult 711

化学和超级电容混合储能双层容量配置平抑风电波动,采用RLMD分解风电功率,粒子群算法求解(Matlab代码实现)

内容概要:本资源聚焦于化学储能与超级电容器混合储能系统的双层容量配置方法,旨在平抑风电功率波动。通过采用鲁棒局部均值分解(RLMD)对风电功率进行多尺度分解,提取不同频率分量,并据此划分高频与低频功率响应任务,充分发挥超级电容器响应速度快和化学电池能量密度高的互补优势。在此基础上,构建以系统成本、寿命损耗与波动平抑效果为目标的多目标优化模型,并利用粒子群优化算法(PSO)求解最优容量配置方案。整个过程通过Matlab代码实现,提供了完整的仿真流程和技术细节,体现了信号分解、储能特性匹配与智能优化算法相结合的技术路线。; 适合人群:具备一定电力系统、新能源或自动化背景,熟悉Matlab编程,从事储能系统规划、风电并网或优化算法应用研究的研发人员与研究生。; 使用场景及目标:① 掌握RLMD等先进信号分解技术在风电功率处理中的应用;② 学习混合储能系统双层协调控制与容量配置的建模思路;③ 实践基于粒子群算法的多目标优化问题求解方法,并应用于实际工程场景。; 阅读建议:此资源以Matlab代码实现为核心,不仅展示算法流程,更注重从工程需求出发的系统设计与优化建模。学习者应结合代码运行、参数调整与结果分析,深入理解RLMD分解效果、储能分工机制及优化目标之间的权衡关系,从而掌握解决此类综合问题的方法论。

POJ 3835 Columbus's bargain(最短路)

Columbus's bargain Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 721   Accepted: 203 Description On the evening of 3 August 1492, Christopher Columbus depa

ACM学习交流 435

无人机路径规划中多种优化算法的仿真研究(Matlab代码实现)

内容概要:本文系统研究了无人机路径规划中多种智能优化算法的仿真方法,重点实现了改进灰狼优化算法(I-GWO)、标准灰狼优化算法(GWO)、金鹰优化算法(GJO)和正弦余弦算法(SCA)在三维复杂环境下的路径规划应用。通过Matlab编程对各类算法进行建模与仿真,对比分析其在路径长度、飞行安全性、轨迹平滑度及算法收敛速度等方面的性能表现。研究涵盖三维空间建模、障碍物规避机制、多目标代价函数设计以及算法参数敏感性分析等内容,旨在为无人机在复杂场景下的自主导航提供高效、可靠的路径规划方案。; 适合人群:具备一定Matlab编程基础和优化算法理论知识,从事无人机系统开发、智能算法研究、自动化控制及相关领域的科研人员与工程技术人员,尤其适合研究生及以上学历的研究者。; 使用场景及目标:①应用于城市密集区、灾难救援、边境巡逻、军事侦察等复杂三维环境下的无人机航迹规划任务;②系统比较不同元启发式优化算法在路径规划中的搜索能力、稳定性和计算效率,为实际工程中算法选型与改进提供依据;③作为高校或科研机构在智能优化、机器人导航、飞行器控制等课程中的教学案例与实验素材。; 阅读建议:建议读者结合文中提供的Matlab代码进行仿真实验,深入理解目标函数构建逻辑与算法实现细节,可通过调整环境障碍分布、优化权重因子及算法参数等方式开展消融实验,以全面掌握各类算法的性能边界与适用条件。

mysql笔记:23. 在Mac上安装与卸载MySQL

MySQL对Mac电脑的适配十分强大,再加上Mac本身就是Unix操作系统演化而来的,所以在Mac上安装MySQL的方式有多种。常见的方法有如下三种:DMG、brew、TAR。介绍这些方法前,我们先了解下MySQL安装文件的下载。

斌斌(Java) 2251

POJ 3835 Columbus's bargain (最短路径 spfa 算法)

Columbus's bargain Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 421   Accepted: 116 Description On the evening of 3 August 1492, Christopher Columbus depa

炒饭君的博客 1534

关于token无痛刷新的两个方案

目录方案一方案二 方案一 思路: 后端需要返回一个token过期的时间,在请求发起前拦截每个请求,判断token的有效时间是否已经过期,如果已过期,则暂时将请求挂起,先刷新token后再继续请求。 前期思考: 返回过期时间是为了判断是否过期的,但是如果服务器时间和系统时间不一致呢? 如果同时发起多个请求时怎么办? 实现: 因为是在请求前进行拦截,所以这里用axios的axios.interceptors.request.use()方法 首先,关于服务器时间和系统时间不一致的问题,我的解决方法是:

Yugoup的博客 2718

hdu3268 Columbus's bargain(spfa最短路)

这题的题意描述可谓是

欢迎来到大型网络对战闯关类游戏——ACM 782

Silvaco TCAD | 从PIN到APD:高性能光电探测器的仿真设计与优化

本文详细介绍了使用Silvaco TCAD进行光电探测器仿真设计与优化的全过程,从基础的PIN结构到高性能APD的实现。通过实战案例和代码示例,展示了如何优化器件参数、实现雪崩效应以及进行高级仿真分析,帮助工程师提升光电探测器的量子效率和响应速度。

weixin_29218509的博客 427

HC32 CAN通信

qqa

zhaopenglihui的博客 5437

POJ 3835 & HDU 3268 Columbus’s bargain(最短路 Spfa)

POJ 3835 & HDU 3268 Columbus’s bargain(最短路 Spfa)

1562

正版63棋牌源代码游戏+728游戏全套带前端源代码解析

这俩天抽时间仔细看了一下这套项目包含完整的前端、后端及后台管理系统。从上传的截图可以看出,前端基于资源目录,后端采用和,后台管理界面提供数据查询与管理功能。本篇文章将从前端结构、后端接口、数据库设计、常见 BUG 及优化方法等方面逐步拆解,并给出相应的代码示例和实践经验。

aa2031171的博客 3593

【Linux 命令实战(04):文件内容查看,掌握 cat、less、head、tail】

cat:快速查看文件内容。less:分页浏览文件,支持搜索。head:查看文件开头。tail:查看文件末尾,支持实时跟踪。其中,tail -f是我建议大家重点掌握的命令。在自动化测试工作中,很多时候我们不需要等整个任务结束才分析结果。通过实时跟踪日志,就可以观察程序执行过程,及时发现接口异常、数据库连接失败等问题。当然,本篇还只是文件内容查看的基础。后面我们会继续学习如何从大量日志中筛选关键词、统计错误数量、定位异常记录。

一些微不足道的见解、希望能帮助各位 206

从Starlink看NTN:SSB波束数量少,用户体验真的会差吗?

当SpaceX的Starlink以每月新增上百颗卫星的速度扩张其星座时,一个有趣的技术现象正在引发行业讨论:为何这个全球最大的低轨卫星网络选择使用相对较少的波束数量?波束数量的选择远非简单的技术参数,而是系统设计哲学、商业策略与终端用户体验的复杂平衡。传统地面网络可以依赖密集基站实现精准覆盖,而卫星通信必须面对一个根本性挑战:如何在数百公里的高空,用有限的射频资源服务广阔的地理区域。当我们在撒哈拉沙漠测试不同波束方案时,发现了一个关键洞见:最佳波束数量不是固定的技术参数,而是随网络发展阶段变化的动态值。

weixin_32308101的博客 335

大数据开发工程师必备面试题与解答

大数据开发岗位一直是互联网行业的热门方向,面试过程中既考察基础知识,也关注实际项目经验和问题解决能力。本文整理了等核心组件相关的高频面试题及参考解答,帮助大家高效准备面试。大数据面试不仅考察基础理论,更看重项目经验与问题解决能力。本文涵盖了等核心知识点及调优思路,希望能帮助你在面试中游刃有余。

X2829352498的博客 305
上一篇: POJ 3928 Ping pong 树状数组
下一篇: POJ 3925 Minimal Ratio Tree 最小生成树
MakingMaker
博客等级 码龄15年 6粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值