J - 在赌场玩

news2024/11/29 3:45:58

 第一周任务 - Virtual Judge (vjudge.net)

 http://t.csdn.cn/rcwO7

第一周任务 - Virtual Judge (vjudge.net)

【题目描述】

然后所有玩家成对玩,每对玩家只玩一次。因此,例如,如果总共有四个玩家,则进行六场比赛:第一场比赛对第二场比赛,第一场比赛对第三场比赛,第一场比赛对第四场比赛,第二场比赛对第三场比赛,第二场比赛对第四场比赛,第三场比赛对第四场比赛。

这些游戏中的每一个都以某种方式决定了获胜者,但规则相当复杂,所以我们不会在这里描述它们。重要的是向获胜者支付了多少筹码。让第一个玩家的牌有数字a1,a2,…,am,还有第二个玩家的卡b1​,b2​,...,bm​.然后游戏的获胜者得到∣a1-b1∣+∣a2-b2∣+⋯+∣am-bm∣总锅中的薯条,其中∣x∣表示绝对值x.

要确定总底池的大小,有必要计算获胜者在所有游戏中的总奖金。

【输入】

每个测试由多个测试用例组成。第一行包含一个整数t (1≤t≤1000) — 测试用例的数量。测试用例的说明如下。

每个测试用例的第一行包含两个整数nm (1≤nm≤3⋅10 5) — 一副牌中的牌数和一张牌上的数字计数。

以下每一项n测试用例集的行包含m整数(c<=10 6)

保证总计nm在所有测试中不超过3⋅10 5.

【输出】

打印一个数字 — 所有游戏的奖金总额。

解题思路:

题目要求每行数据对应的牌之间的差,然后累加每一种行与行对应的情况。

这个题目要求计算每个玩家之间对应的牌之间的差距(绝对值),肯定不能直接将每一行的数据进行排序,因为当打乱牌的顺序时,牌与牌之间的差可能会发生变化。

有个要注意的点是:通常存放如图的数据时,用一个二维数据就可以了,但是这里给出的限定是:nm≤3⋅10 5,不知道n和m的准确范围,而定义一个a[3⋅10 5][3⋅10 5]又会数组超出范围。

所以这里用到对象数组(容器),它可以用来存放任意类型的动态数组,这里的话可以将n和m的值输入后,再定义一个规定范围的vector容器,可以解决题目中的这个问题。

vector<vector<int>> a(m,vector<int>(n));

还有个要注意的点:仔细看数据的范围会发现:计算出来的结果肯定会出现超出int范围的值,要注意使用long long存储数据 。

接下来还是不好解决这个问题,因为要保证时间不超限的情况下,还有考虑数字的正负。并且先前所说的将每个玩家手中的牌按序排列会改变最终的结果。所以换一种思考方式,题目给的样例是n*m,但是我可以将它转换为m*n的形式:

第一个样例,对于第二张图,它是在输入的时候将行列转换,此时在三列之间进行计算,对于每一行的三列排序后,然后进行计算。

用两层循环,第一层循环将行排序,第二层循环用计数器计算总数。

例如第一行,排序后是1,3,7,对于第一个的1来说,它被后面的n-j-1个数都减一遍(j是排序后的位置),对于第二个的3,它被后面的n-j-1个数减一遍,并且用它减去前面的 j 个数。

代码如下:

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main() {
	int t;
	int n, m;
	cin >> t;

	while (t--) {
		long long sum = 0;
		cin >> n >> m;
		//根据输入的n,m的大小分配开辟的空间,这里的m是参与的人数,n是每个人的牌数
		vector<vector<long long>> a(m, vector<long long>(n));
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				cin >> a[j][i];
			}
		}
		long long s=0;

		//每个人的牌不能变换位置,但是每个人的位置变了,无影响
		for (int i = 0; i < m; i++) {
			sort(a[i].begin(), a[i].end());
			for (int j = 0; j <n; j++) {
				//代表当前点将会被加多少次(j),和减多少次(n-j-1)
				s = s + a[i][j] * j - a[i][j] * (n-j - 1);
			}
		}
		cout << s << endl;
	}
}

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

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

相关文章

真题详解(二分查找平均值)-软件设计(六十)

真题详解&#xff08;数据流图平衡&#xff09;-软件设计&#xff08;五十九)https://blog.csdn.net/ke1ying/article/details/130394959 全码&#xff1a;指关系模式所有属性都是这个关系模式的候选码。 RISC特点&#xff1a; 指令种类&#xff1a;少&#xff0c;精简 指令…

彻底弄懂Java的泛型1 - 泛型类

Java泛型是初级程序员向中高级程序员进阶的必经之路&#xff0c;他不是特别难&#xff0c;但是想全部搞懂和会用&#xff0c;还是不容易的。 本文从实战角度出发&#xff0c;讲解你在公司做开发&#xff0c;可能会用到泛型的一种场景。 泛型T的用法 引子 先来看一个简单的类…

UDP 协议

目录 一、什么是协议 二、认识UDP 协议 2.2 UDP 协议的报文格式 2.3 使用UDP 协议传输大文件时的策略 2.4 UDP协议的工作流程 一、什么是协议 为了使数据在网络上传输&#xff08;从源头到达目的&#xff09;&#xff0c;网络通信的参与方必须遵循相同的规则&#xff0c;如…

SpaceX的星舰爆炸了:产品开发,快速失败真的很重要

目录 前言 快速失败 产品生命周期 专栏上线 前言 看到很多人都在聊星舰&#xff0c;今天就来简单谈谈“炸星舰”带给我们的启示。 在美国中部时间20日&#xff0c;SpaceX公司的“星舰”超重型火箭进行了首次轨道飞行。 但在该火箭成功点火升空几分钟后&#xff0c;却在半…

Java-synchronized实现详解(从Java到汇编)

synchronized作为java语言中的并发关键词&#xff0c;其在代码中出现的频率相当高频&#xff0c;大多数开发者在涉及到并发场景时&#xff0c;一般都会下意识得选取synchronized。 synchronized在代码中主要有三类用法&#xff0c;根据其用法不同&#xff0c;所获取的锁对象也…

如何通过开源项目搭建私有云平台--第四步下:安装rancher 监控

第四步下&#xff1a;安装rancher 监控,缺告警 本来想监控与告警一起写&#xff0c;但最近几天研究了rancher的告警&#xff0c;按照文档说法&#xff0c;配置了但没有触发&#xff0c;网上找了一些资料&#xff0c;有的在rancer 2.6成功的&#xff0c;但我用同样的方法在2.7.…

09 【Sass语法介绍-函数指令】

1.前言 在之前的章节我们学习过 Sass 提供的各种各样的函数&#xff0c;那么如果我们需要自定定义函数来使用就需要用到函数指令 function了。本节内容我们来学习 Sass 函数指令的语法和使用&#xff0c;在 Sass 中自定义函数是必须要掌握的&#xff01; 2.什么是 Sass 函数指…

又一款可视化神器,开源了!

在互联网数据大爆炸的这几年&#xff0c;各类数据处理、数据可视化的需求使得 GitHub 上诞生了一大批高质量的 BI 工具。 借助这些 BI 工具&#xff0c;我们能够大幅提升数据分析效率、生成更高质量的项目报告&#xff0c;让用户通过直观的数据看到结果&#xff0c;减低沟通成…

安卓项目如何做单元测试

前言 先说一下创建篇文章的目的&#xff0c;近期负责搭建公司的单元测试框架&#xff0c;于是查阅了网上的很多文章&#xff0c;以及参考了github上很多的项目例子&#xff0c;并且也进行了相当多的尝试。这其中花费了很多的精力&#xff0c;大约有两三周的时间&#xff0c;远…

淘系抓包流程(淘宝数据无法抓包解决方式)

淘系抓包流程 结合frida和adb工具以及mumu模拟器进行抓包。 具体的关系图: frida的安装 frida安装&#xff0c;直接安装官网的脚手架。frida官网使用python的pip安装&#xff0c;python > 3。 安装后使用查看版本命令来确认是否安装。 pip install frida-tools frida --ve…

【严重】VMware Aria Operations for Logs v8.10.2 存在反序列化漏洞(CVE-2023-20864)

漏洞描述 VMware Aria Operations for Logs前身是vRealize Log Insight&#xff0c;VMware用于处理和管理大规模的日志数据产品。 VMware Aria Operations for Logs 8.10.2版本中存在反序列化漏洞&#xff0c;具有 VMware Aria Operations for Logs 网络访问权限的未经身份验…

“SCSA-T学习导图+”系列:交换技术之STP

本期引言&#xff1a; 在通信工程当中&#xff0c;从物理层面上&#xff0c;我们可以采用冗余链路保证网络的健壮性。冗余是指出于系统安全和可靠性等方面的考虑&#xff0c;人为地对一些关键部件或功能进行重复的配置。当系统发生故障时&#xff0c;比如某一设备发生损坏&…

【Linux】Linux下的gbd调试,你学废了吗

操作系统核心数centos 3.10.032位单核 gbd调试方法-以线程运行时调试为例 线程死锁状态时查看栈升级gbd通过gdb在程序运行时进行调试 线程死锁状态时查看栈 在线程-线程安全之互斥中&#xff0c;我们自己写了一个模拟实现的线程死锁情况 我们用gbd调试查看了当前线程的调用&a…

拉链表制作

1.拉链表的应用场景 拉链表适合于&#xff1a;数据会发生变化&#xff0c;但是大部分是不变化的&#xff08;即&#xff1a;缓慢变化维。还需要保留历史数据做分析的场景&#xff09; 2.拉链表的形成过程 关键的过程 第四步&#xff1a;获取变化的数据&#xff08;创建和修改…

Flask连接MySQL

本文章涉及到Flask框架和HTML内容&#xff0c;相关知识可查看链接 HTML-form表单和提交_html form 提交_小梁今天敲代码了吗的博客-CSDN博客https://blog.csdn.net/weixin_43780415/article/details/130110722 前端引入和html标签_小梁今天敲代码了吗的博客-CSDN博客https://b…

vscode下drawio无法使用

问题描述&#xff1a; Vscode下&#xff0c; 刚下载drawio这个插件&#xff0c;在vscode左边EXPLORER下&#xff0c;没有Test这个页面,导致vscode无法使用drawio。 解决办法&#xff1a; 在自己需要的目录下&#xff0c;新建一个文件&#xff0c;例如test,并命名为test.drawi…

数据结构算法

直接插入排序 1.从第一个元素开始&#xff0c;该元素可以认为已经被排序 2.取下一个元素tem&#xff0c;从已排序的元素序列从后往前扫描 3.如果该元素大于tem&#xff0c;则将该元素移到下一位 4.重复步骤3&#xff0c;直到找到已排序元素中小于等于tem的元素 5.tem插入到该元…

5.1劳动节,致敬最可爱的人!Cocos社区杰出贡献者出炉

Cocos 引擎的生态建设与繁荣&#xff0c;离不开社区开发者的辛勤付出。 2022.5 ~ 2023.5 年度期间&#xff0c;有这样一批 Cocos 社区开发者&#xff0c;他们使用 Cocos Creaor 引擎创作内容与产品、分享技术和经验&#xff0c;为 Cocos 社区默默贡献自己的一份力量&#xff0c…

改进YOLOv8:替换轻量化骨干网络Efficient V1、Efficient V2《重新思考卷积神经网络的模型缩放》)

这里写目录标题 1 EfficientNetV1中存在的问题2.EfficientNetV2网络框架3.YOLOv8添加Efficient V1代码yaml文件Efficient V1代码运行4. 添加Efficient V2代码yaml文件Efficient V2运行Efficient V1论文地址:https://arxiv.org/pdf/1905.11946.pdf Efficient V1代码地址:

Golang每日一练(leetDay0049) 二叉树专题(9)

目录 144. 二叉树的前序遍历 Binary-tree Preorder Traversal &#x1f31f; 145. 二叉树的前序遍历 Binary-tree Postorder Traversal &#x1f31f; 对比&#xff1a; 94. 二叉树的中序遍历 Binary-tree Inorder Traversal &#x1f31f; 146. LRU缓存 LRU Cache &am…