Pinely Round 3 (Div. 1 + Div. 2)

在这里插入图片描述

Pinely Round 3 (Div. 1 + Div. 2)

Pinely Round 3 (Div. 1 + Div. 2)

A. Distinct Buttons

题意:当前处于(0, 0)原点,给出若干个平面坐标轴上的点,是否可以仅选择三个方向便可以到达所有给出的点。

思路:到达单一坐标点最多需要两个方向,记录到达每个点需要的方向,若四个方向都需要用到则不可能仅选择三个方向。

AC code:

void solve(){cin >> n;int x = 0, y = 0;int l = 0, r = 0, u = 0, d = 0;for(int i = 0; i < n; i ++){int t, v; cin >> t >> v;if(t < 0) l ++;if(t > 0) r ++;if(v > 0) u ++;if(v < 0) d ++;}if(l && r && u && d){cout << "NO" << endl;return;}cout << "YES" << endl;
}

B. Make Almost Equal With Mod

题意:给出一个长度为n的正整数数组a,现在必须选择一个正整数k,然后对于数组a中的每一个数将 a i a_i ai替换为 a i a_i aimod k,该操作有且只有一次,在操作后,数组a中的元素必须有且仅有两个数不同,找出可能的k值。

思路:从二进制低位开始考虑k值,即从2开始考虑, 2的余数只有0或1两种可能,即二进制最低位是否为1,若2取余后均为同一数,说明二进制最低位要么全是0要么全是1,我们开始考虑次低位,以此类推,题目保证一定存在k值,所以从二进制最低位开始遍历。

k最大可能为1e18,则遍历的不会超过60位。

AC code:

void solve(){cin >> n;int x = 0, y = 0;int mn = 1e18;for(int i = 1; i <= n; i ++){cin >> a[i];}for(int i = 1; i <= 1e18; i *= 2){map<int, int> mp;for(int j = 1; j <= n; j ++)mp[a[j] % i] ++;if(mp.size() == 2){cout << i << endl;return;}}
}

C. Heavy Intervals

题意:给出左区间数组l和右区间数组r以及每个区间的权值数组c,现在需要将l和r进行任意匹配,保证每个区间的r>l,然后将权值数组c与每个区间进行配对,最终每个区间的权值为( r i r_i ri- l i l_i li)* c i c_i ci,现在需要最小化区间权重的总和。

思路:

首先所有区间的差加起来是恒定的,需要去分配这些差在每个区间的大小,然后在将小区间与大权值进行配对,那么现在问题在于如何找到最佳的区间。

这里需要将大区间尽可能的扩大,从而分配给更小的权值,然后相对的令小区间更小,分配给更大的权值,从而最小化区间权值总和。我们还需要保证每个区间都必须符合r>l的必须条件,所以不能盲目的用最大的r去匹配最小的l来最大化区间。

这里可以以右区间r为基准,因为要保证r>l,可以将左区间l排序后找到第一个小于r的数,然后将该数从l区间中删除,两种操作的最佳选择是set中的*prev(s.lower_bound®)(反转lower_bound函数,从寻找大于等于r的第一个元素变为寻找第一个小于r的元素)。

在匹配到每一对合法区间后,可以用pair进行存取,然后根据区间差进行升序排序(当然可以直接存区间差进行排序),然后对权值数组c进行降序排序,一一对应通过( r i r_i ri- l i l_i li)* c i c_i ci得到最后的最小区间权值和。

AC code:

#include<bits/stdc++.h>
#define endl '\n'
#define int long long
#define fast() ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
using namespace std;typedef long long LL;
typedef pair<char, int> PCI;
typedef pair<int, int> PII;
const int N = 3e5+10, M = 2001;
const int INF = 0x3f3f3f3f3f, mod = 998244353;
int T, n;
int l[N], r[N], c[N];
map<int, int> st;bool cmp(PII a, PII b){return a.second - a.first < b.second - b.first;
}void solve(){vector<PII> cnt;cin >> n;for(int i = 1; i <= n; i ++) cin >> l[i];for(int i = 1; i <= n; i ++) cin >> r[i];for(int i = 1; i <= n; i ++) cin >> c[i];sort(l + 1, l + n + 1);sort(r + 1, r + n + 1);sort(c + 1, c + n + 1, greater<int>());set<int> s(l + 1, l + n + 1);for(int i = 1; i <= n; i ++){auto it = prev(s.lower_bound(r[i]));cnt.push_back({*it, r[i]});s.erase(it);}sort(cnt.begin(), cnt.end(), cmp);int ans = 0, t = 1;for(auto [x, y] : cnt){ans += (y - x) * c[t ++];}cout << ans << endl;
}signed main(){fast();T = 1;cin >> T;while(T --){solve();}return 0;
}

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

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

相关文章

在MFC,Win32程序中向控制台(Console)窗口输出调试信息

在MFC程序中输出调试信息的方法有两种&#xff0c;一种是使用TRACE宏&#xff0c;可以向Output窗口输出调试信息&#xff1b;另一种是用MessageBox&#xff0c;弹出消息框来输出调试信息&#xff0c;但会影响程序的运行。其实有一种方法可以更为方便的输出调试信息&#xff0c;…

C++程序内存泄漏都与哪些方面有关,该如何处理和避免

动态内存分配有几种: 一个是用了malloc/free, new/delete 第二个使用了第三方的库&#xff0c;库里面的API使用了第一种方法&#xff0c;他们需要你来释放空间&#xff0c;这个会在库的说明文档里有说明。 第三是程序递归&#xff0c;大量的程序递归和互相调用而不推出导致栈空…

unity vr是加一个摄像机就行吗_梦工厂和皮克斯员工创办的Baobab谈互动叙事:传统动画与VR动画的探索...

ACGN洞察访问三文娱网站3wyu.com查看产业必读文章Baobab工程师谈VR动画&#xff0c;以获得艾美奖和安妮奖的作品为例&#xff0c;介绍在跨媒体平台提升动画的质量、交互性和故事性。上个周末&#xff0c;Unite Shanghai 2019 在上海国际会议中心举行&#xff0c;来自世界各地的…

hbase regions_使用Regions ADF 11g进行Master Detail CRUD操作

hbase regions此示例演示了如何使用Regions在表之间创建Master Detail关系。 区域的主要目的是可重用性的概念。 使用区域和有限的任务流&#xff0c;我们可以将页面重用到许多其他页面中&#xff0c;以保持相同的功能并采用更简洁的方法 下载示例应用程序。 对于此示例&#…

(兔子繁殖问题)有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到三个月后每个月又生一对兔子,假如兔子都不死,问32个月过后的兔子总数为多少?...

网上关于这个问题有很多人说这个符合斐波那契数列&#xff0c;但是我个人在推算的时候发现并不是这样的&#xff0c;所以想自己解决这个问题 建立一个兔子类 属性有ID&#xff0c;age public class rabbit{ public  $id; public age; } 第1个月&#xff1a;(id1,age1)-------…

IF-ERRORLEVEL使用方法

我们都知道if是命令行下的一个条件判断语句&#xff0c;ERRORLEVEL是它的一个参数&#xff0c;翻译过来就是“错误返回码”的意思&#xff0c;它的作用是判断前一条命令的错误返回值&#xff0c;然后和定义的字符值进行比较&#xff0c;再决定进行什么动作今天远程一个客户&…

Eclipse IDE中的Java 9 module-info文件

请注意&#xff0c;本文并非旨在更新状态&#xff1b; 这只是基于我对Beta代码所做的一些实验而得出的快速更新。 已经有一段时间了&#xff0c;但是我要回到Eclipse IDE中尝试Java 9支持。 为了进行测试&#xff0c;我从Eclipse Project下载了最新的Oxygen &#xff08;4.7&…

局域网mysql数据库访问

1、调出mysql 命令界面 输入命令&#xff1a; mysql> use mysql Database changed mysql> select host,user,password from user; ------------------------------------------------------------ | host | user | password | --…

java.util中,util是什么意思

Util是utiliy的缩写&#xff0c;是一个多功能、基于工具的包。 java.util是包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类&#xff08;字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等&#xff09…

Mathematics 9.0 绘制不等式确定的区域

在最新的mathematics软件中使用如下代码&#xff0c;无法产生程序&#xff1a; 在搜索了Mathematics 9.0 -> 帮助 -> 参考资料中心的内容&#xff0c;查到一个更简单好用的函数&#xff0c;正确结果如下&#xff1a;

无法打开包括文件:“mysql..h”: No such file or directory

出现这个问题后&#xff0c;根据网上提供的方法做了很多&#xff0c;但都没有用。后来在盘里面找了一下确实没有mysql.h这个文件&#xff0c;原来mysql必须选择complete安装方式才会有这个头文件。首先重新安装了一次mysql&#xff0c;然后选择自己的工程&#xff0c;进行环境配…

C# WPF 显示图片和视频显示 EmuguCv、AForge.Net测试

C# WPF 显示图片和视频显示 EmuguCv、AForge.Net测试 原文:C# WPF 显示图片和视频显示 EmuguCv、AForge.Net测试WPF 没有用到 PictureBox, 而是用Image代替. 下面我试着加载显示一个图片 。 XAML <Image x:Name"srcImg"Width"400"Height"300"…

一般一个前端项目完成需要多久_一种按周迭代的敏捷式项目管理方法

项目管理有很多理论&#xff0c;并且相关内容非常丰富&#xff0c;例如经典的项目管理的教材《项目管理&#xff1a;计划、进度和控制的系统方法》&#xff0c;字数达到了100万字。但是从源头来说&#xff0c;经典项目管理理论都是源自于对生产项目的过程中需要的管理的总结。对…

excel连接mysql 数据库

最近做个项目需要对收集到的数据进行实时刷新&#xff0c;原先考虑让获得的数据之间输出到txt文本&#xff0c;然后又文本导入到数据库&#xff0c;但是txt在修改查找的时候要把数据都读入到内存在进行相关改动&#xff0c;这样就很耗内存&#xff0c;而且文件占用率比较高&…

python jieba库下载_Python中jieba库安装步骤及失败原因解析

Python 中 jieba 库安装步骤及失败原因解析 作为计算机小白&#xff0c; Python 的流行也让我蠢蠢欲动&#xff0c; 在请教计算机 专业同学后&#xff0c;开始上网课自学 Python 基础知识。今天老师简单的一 句话“在命令行去运行 pip install jieba 的指令”安装 jieba 库&…

开放源代码库指南

微软.NET开发团队在博客上&#xff08;https://blogs.msdn.microsoft.com/dotnet/2018/10/15/guidance-for-library-authors/&#xff09;刚刚发布了.NET Library Guidance的第一个版本。这是一系列全新的文章&#xff0c;指导你为.NET创建高质量代码库。该指南包含我们已确定的…

[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配

在数据库和excel对接中有可能会出现错误“[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中&#xff0c;驱动程序和应用程序之间的体系结构不匹配” 本人发生这种情况的是在excel 在选定数据连接向导的时候&#xff0c;这是驱动程序和excel的体系结构不匹配&#xff1b; 环…

python程序写诗_python写的简单发送邮件的脚本

近来有些东西需要监控报警发邮件&#xff0c;然后在网上找了点材料&#xff0c;自己写了一个简单发送邮件的脚本&#xff0c;主要就是运用python的smtplib模块&#xff0c;分享给大家看一下&#xff1a; #!/usr/bin/env python # -*- coding: utf-8 -*- #导入smtplib和MIMEText…

多线程的运行状态

多线程运行状态 线程从创建、运行到结束总是处于下面五个状态之一&#xff1a;新建状态、就绪状态、运行状态、阻塞状态及死亡状态。 新建状态 当用new操作符创建一个线程时&#xff0c; 例如new Thread(r)&#xff0c;线程还没有开始运行&#xff0c;此时线程处在新建状态。 当…

LOAD DATA INFILE 语法

原文地址:http://blog.sina.com.cn/s/blog_539f03f00100xfxb.html mysql 的LOAD DATA INFILE 是一个高速insert的不错的方案 篇文章语法介绍的比较详细&#xff0c;转载&#xff0c;记录。 其实我就这样用&#xff1a; load data infile /home/mark/data_update.sql replace i…