七夕祭

news2024/9/21 12:47:09

title: 七夕祭
date: 2024-01-03 22:47:05
tags:

传送门

题目大意

在这里插入图片描述

解题思路

行的感兴趣的摊点或者列的感兴趣的摊点的数量能被行数或者列数整除,则能够实现要求。“均分”思想,设总感兴趣摊点数 T T T 和行数列数 n n n,当前感兴趣的摊点数超过 T n \frac{T}{n} nT 则将多余的感兴趣摊点数 $a_i - \frac{T}{n} $转移给旁边的;如果小于 T n \frac{T}{n} nT,则旁边向其转移 T n \frac{T}{n} nT - a i a_i ai 个。我们向每一行或每一列减去 T n \frac{T}{n} nT ,最后前缀和得到的结果为 0,这个结果是等价的,那么我们就将最小转换次数的问题转化成求每个点到该点的距离总和最短。参考 “货仓选址”,中位数的性质可以得出结果。

代码实现

#include<iostream>
#include<string.h>
#include<cstring>
#include<unordered_map>
#include<iomanip>
#include<vector>
#include<algorithm>
#include<math.h>
#define bpt __builtin_popcountll

using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> PII;

const int N = 2E6 + 10, mod = 998244353;

ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; }

const int MOD = 998244353;

int row[N], col[N];
ll c[N];
int T;
ll get(int *a, int n)
{
	ll ans = T / n;
	for (int i = 1; i <= n; i++) {
		c[i] = a[i] - ans;
	}

	for (int i = 1; i <= n; i++) {
		c[i] += c[i - 1];
	}
	
	sort(c + 1, c + n + 1);
	int mid = c[n / 2 + 1];
	ll sum = 0;
	for (int i = 1; i <= n; i++) {
		sum += abs(c[i] - mid);
	}
	return sum;
}
int main()
{
	int n, m;
	cin >> n >> m >> T;
	for (int i = 0; i < T; i++) {
		int l, r;
		cin >> l >> r;
		row[l] ++, col[r] ++;
	}
	if (T % m && T % n) {
		puts("impossible");
	}
	else if (T % n) {
		cout << "column" << ' ' << get(col, m);
	}
	else if (T % m) {
		cout << "row" << ' ' << get(row, n);
	}
	else {
		cout << "both" << ' ' << get(row, n) + get(col, m);
	}
}

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

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

相关文章

ansible 配置jspgou商城上线(MySQL版)

准备环境 准备两台纯净的服务器进行&#xff0c;在实验之前我们关闭防火墙和selinux systemctl stop firewalld #关闭防火墙 setenforce 0 #临时关闭selinux hosts解析(两台服务器都要去做) [rootansible-server ~]# vim /etc/hosts 10.31.162.24 ansible-ser…

某和医院招采系统web端数据爬取, 逆向js

目标网址:https://zbcg.sznsyy.cn/homeNotice 测试时间: 2024-01-03 1 老规矩,打开Chrome无痕浏览,打开链接,监测网络,通过刷新以及上下翻页可以猜测出数据的请求是通过接口frontPageAnnouncementList获取的,查看返回可以看出来数据大概率是经过aes加密的,如图: 通过查看该请…

Spark Streaming的DStream与窗口操作

实时数据处理已经成为当今大数据时代的一个重要领域&#xff0c;而Spark Streaming是Apache Spark生态系统中的一个关键模块&#xff0c;用于处理实时数据流。本文将深入探讨Spark Streaming中的DStream&#xff08;离散流&#xff09;概念以及如何使用窗口操作来处理实时数据。…

人工智能如何重塑金融服务业

在体验优先的世界中识别金融服务业中的AI使用场景 人工智能&#xff08;AI&#xff09;作为主要行业的大型组织的重要业务驱动力&#xff0c;持续受到关注。众所周知&#xff0c;传统金融服务业在采用新技术方面相对滞后&#xff0c;一些组织使用的还是上世纪50年代和60年代发…

PostgreSQL荣获DB-Engines 2023年度数据库

数据库流行度排名网站 DB-Engines 2024 年 1 月 2 日发布文章宣称&#xff0c;PostgreSQL 荣获 2023 年度数据库管理系统称号。 PostgreSQL 在过去一年中获得了比其他 417 个产品更多的流行度增长&#xff0c;因此获得了 2023 年度 DBMS。 DB-Engines 通过计算每种数据库 2024 …

java税务信息管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web税务信息管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql…

互联网分布式应用之SpringCloud

SpringCloud Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机&#xff0c;Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. 微服务项目介绍 2. Eure…

C# halcon 工业产品尺寸测量

产品检测 这段代码是一个基于HalconDotNet的Windows窗体应用程序&#xff0c;主要用于图像处理和测量。以下是对代码的一些总结&#xff1a; 1. **图像显示与加载&#xff1a;** - 使用HalconDotNet库进行图像处理。 - 通过OpenFileDialog实现图像文件的选择和加载。 …

设计模式_结构型模式_装饰器模式

装饰器模式和代理模式很像。 代理模式是已经知道代理谁了&#xff0c;所以只是对委托类的访问权限进行限制&#xff0c;因此用户只需要访问相应的代理类就可以。装饰器模式并不知道要装饰谁&#xff0c;所以需要传入具体的被装饰对象进行功能的添加 目的&#xff1a; 增加现有…

关于设计模式的一点总结

一、GoF 23种设计模式 1.分类 GoF 23种设计模式可分为几类&#xff1a;创建型、结构型和行为型。如下表 分类设计模式创建型单例模式、工厂方法模式、抽象工厂模式、原型模式、建造者模式结构型代理模式、适配器模式、装饰者模式、桥接模式、组合模式、门面模式、享元模式行…

玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— 首次运行DevEco Studio

接前一篇文章&#xff1a;玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— DevEco Studio下载与安装 上一篇文章详细说明了Dev Eco Stdio的下载即安装过程&#xff0c;本回讲一下首次运行DevEco Studio的过程。 笔者电脑的操作系统是Windows 11。点击“开始菜单”&#xff0c;在弹…

金融服务公司如何通过人工智能实现任务转型

金融服务行业正在使用人工智能和机器学习提升各项业务流程的速度和准确性。利用人工智能和机器学习技术&#xff0c;金融服务公司可以大幅度降低风险&#xff0c;防止欺诈&#xff0c;优化投资策略&#xff0c;提高运营效率&#xff0c;并提供更为个性化的客户服务。 金融行业为…

(vue)增加行,对应行删除

(vue)增加行&#xff0c;对应行删除 效果&#xff1a; 代码&#xff1a; <div v-for"(ele,i) of algorithmList" :key"i"><el-form-item label"模型类型"><el-selectv-model"ele.algorithmId"placeholder"选择模…

Java LinkedList解密

一、LinkedList最底层的原理 LinkedList其实底层是链表&#xff1a; 当初始化的时候&#xff0c;会将链表这个节点的值、prev指针和next指针初始化。 二、LinkedList初始化 无参构造并没有做什么。有参构造会先调用无参构造&#xff0c;然后调用addAll方法将链表的节点都初始化…

GaussDB数据库使用COPY命令导数

目录 一、前言 二、GaussDB数据库使用COPY命令导数语法 1、语法COPY FROM 2、语法COPY TO 3、特别说明及参数示意 三、GaussDB数据库使用COPY命令导数示例 1、操作步骤 2、准备工作&#xff08;示例&#xff09; 3、把一个表的数据拷贝到一个文件&#xff08;示例&…

Web应用开发:介绍

Web应用开发&#xff0c;介绍一下 文心一言&#xff08;文心大模型3.5&#xff09; Web应用开发是一种使用Web技术创建和部署应用程序的过程。Web应用通常是指通过网络浏览器访问的应用程序&#xff0c;它们可以提供各种功能&#xff0c;如在线银行、在线购物、社交媒体平台等…

2020年认证杯SPSSPRO杯数学建模D题(第一阶段)让电脑桌面飞起来全过程文档及程序

2020年认证杯SPSSPRO杯数学建模 D题 让电脑桌面飞起来 原题再现&#xff1a; 对于一些必须每天使用电脑工作的白领来说&#xff0c;电脑桌面有着非常特殊的意义&#xff0c;通常一些频繁使用或者比较重要的图标会一直保留在桌面上&#xff0c;但是随着时间的推移&#xff0c;…

优雅地展示20w单细胞热图|非Doheatmap 超大数据集 细胞数太多

单细胞超大数据集的热图怎么画&#xff1f;昨天刚做完展示20万单细胞的热图要这么画吗&#xff1f; 今天就有人发消息问我为啥他画出来的热图有问题。 问题起源 昨天分享完 20万单细胞的热图要这么画吗&#xff1f;&#xff0c;就有人问为啥他的数据会出错。我们先来看下他的…

【Vue2+3入门到实战】(21)认识Vue3、使用create-vue搭建Vue3项目、熟悉项目和关键文件

目录 一、认识Vue31. Vue2 选项式 API vs Vue3 组合式API2. Vue3的优势 二、 使用create-vue搭建Vue3项目1. 认识create-vue2. 使用create-vue创建项目 三、 熟悉项目和关键文件四、总结 一、认识Vue3 1. Vue2 选项式 API vs Vue3 组合式API <script> export default {…

Django Web 开发实战-实现用户管理系统(部门管理、用户管理、注册登录、文件上传)

简介 基于Django Python Web框架 MySQL Bootstrap 开发的用户管理系统。支持增删改查、模糊搜索、分页。 功能介绍 部门管理---》已完成 用户管理---》已完成 认证&#xff08;注册/登录&#xff09;---》开发中 数据统计---》待开发 文件上传---》待开发 效果图 部门…