Codeforces Round 946 (Div.3)

C o d e f o r c e s R o u n d 946 ( D i v . 3 ) \Huge{Codeforces~Round~946~(Div.3)} Codeforces Round 946 (Div.3)

题目链接:Codeforces Round 946 (Div. 3)

文章目录

  • Problems A. Phone Desktop
    • 题意
    • 思路
    • 标程
  • Problems B. Symmetric Encoding
    • 题意
    • 思路
    • 标程
  • Problems C. Beautiful Triple Pairs
    • 题意
    • 思路
    • 标程
  • Problems D. Ingenuity-2
    • 题意
    • 思路
    • 标程
  • Problems E. Money Buys Happiness
    • 题意
    • 思路
    • 标程

Problems A. Phone Desktop

题意

有无限个 3 × 5 3\times 5 3×5的二维方阵,然后给出x个 1 × 1 1 \times 1 1×1的方块和y个 2 × 2 2\times 2 2×2的方块,要求所有方块全部放在方阵里,求最少需要多少个方阵。

思路

每个方阵能放两个 2 × 2 2\times 2 2×2的方块,或者15个 1 × 1 1\times 1 1×1的方块,然后根据 2 × 2 2\times 2 2×2个数,求出至少需要多少个方阵,然后再根据 1 × 1 1\times 1 1×1方块个数判断需不需要加方阵。

标程

void Solved() {int x, y; cin >> x >> y;int sum1 = (y + 1) / 2;int sum2 = sum1 * 7;if(y & 1) sum2 += 4;sum2 -= x;if(sum2 < 0) {sum2 *= -1;sum1 += (sum2 + 14) / 15;}cout << sum1 << endl;
}

Problems B. Symmetric Encoding

题意

题目给出一个字符串 s s s,然后要求求解其加密前的字符串。

加密过程为:

  • 先将 s s s去重排序得到 s 2 s2 s2
  • 然后对 s 2 s2 s2进行首尾映射:
  • img
  • 最后根据映射改变 s s s

思路

根据加密过程进行模拟。

字符串是否加密,其去重排序的结果是不变的,然后用 m a p map map记录字母映射,然后对加密字符串解密即可。

标程

void Solved() {int n; cin >> n;string s; cin >> s;string ss = s, s1;sort(ss.begin(), ss.end());s1 = s1 + ss[0];for(int i = 1; i < n; i ++ ) {if(s1.back() != ss[i]) s1 = s1 + ss[i];}map<char, char> mp;int len = s1.size();for(int i = 0; i < len; i ++ ) {mp[s1[i]] = s1[len - i - 1];mp[s1[len - 1 - i]] = s1[i];}for(int i = 0; i < n; i ++ ) {cout << mp[s[i]];} cout << endl;
}

Problems C. Beautiful Triple Pairs

题意

题目给出一串长度为 n n n的数列 a a a,如果任意三元组 j ( 1 ≤ j ≤ n − 2 ) [ a j , a j + 1 , a j + 2 ] j (1 \le j \le n - 2) [a_j, a_{j + 1}, a_{j + 2}] j(1jn2)[aj,aj+1,aj+2]能够与其他三元组符合:任意一个位置不同其他两个位置相同,那么这个三元组就是美丽的,求其中美丽三元对的个数。

  • 3 ≤ n ≤ 2 ⋅ 1 0 5 3 \le n \le 2 \cdot 10^5 3n2105

思路

这道题的数据范围比较大,我们可以发现,对于任意三元组,如果我们需要找出所有三元组中有多少满足要求,其结果是:所有与它有至少两个相等的三元组个数,减去所有与它全部相等的三元组个数。

因此我们可以遍历一遍,然后用map存一下所有三元组中的两个,一共需要用三个map,然后再存一下每个三元组本身的个数,然后遍历一遍求解即可。

需要注意的是,我们求解过程中每个美丽三元组都加了两次,所以需要最后结果除以 2 2 2

标程

#define int long long 
#define PII pair<int, int>
#define fi first 
#define se secondvoid Solved() {int n; cin >> n;vector<int> a(n + 1);for(int i = 1; i <= n; i ++ ) {cin >> a[i];}map<PII, int> mp1, mp2, mp3;map<tuple<int, int, int>, int> mp;for(int i = 1; i <= n - 2; i ++ ) {mp[{a[i], a[i + 1], a[i + 2]}] ++;mp1[{a[i + 1], a[i + 2]}] ++;mp2[{a[i], a[i + 2]}] ++;mp3[{a[i], a[i + 1]}] ++;}int res = 0;for(int i = 1; i <= n - 2; i ++ ) {res += mp1[{a[i + 1], a[i + 2]}] - mp[{a[i], a[i + 1], a[i + 2]}];res += mp2[{a[i], a[i + 2]}] - mp[{a[i], a[i + 1], a[i + 2]}];res += mp3[{a[i], a[i + 1]}] - mp[{a[i], a[i + 1], a[i + 2]}];}cout << res / 2 << endl;
}

Problems D. Ingenuity-2

题意

题目给出上下左右四种操作,分别用“WESN"对应。现在有一个直升机H和漫游车 R R R,然后给出一串操作,要求每次选择直升机移动,或者漫游车移动,要求最后到达同意位置,题目要求输出一种具体解决方案,并且直升机或者漫游车都至少移动一次

思路

本题是一道模拟,我们考虑如下情况:一般地,如果讲所有操作全用一种机器移动,设最后坐标为 ( x , y ) (x,y) (x,y),若 x x x y y y为奇数,则题目无解,否则可以将两个机器都移动到 ( x 2 , y 2 ) (\frac{x}{2},\frac{y}{2}) (2x,2y)位置。

实现方法就是:每个机器都移动每种操作数的一半。

唯一需要注意的就是:

  • 不存在解决方案的情况:除了上述的横纵坐标出现奇数,还有就是当 n n n 2 2 2,且两个操作不一样的情况。
  • 当上下左右各出现一次的时候,需要特判,因为题目要求每个机器都至少移动一次。

标程

void Solved() {int n; cin >> n;string s; cin >> s;int x = 0, y = 0;map<char, int> mp;for(int i = 0; i < n; i ++ ) {if(s[i] == 'N') y ++, mp['N'] ++;if(s[i] == 'S') y --, mp['S'] ++;if(s[i] == 'W') x --, mp['W'] ++;if(s[i] == 'E') x ++, mp['E'] ++;}if((x & 1) || (y & 1) || (n == 2 && s[0] != s[1])) {cout << "NO\n"; return;}string ss = "WESN";int t = 0;for(auto i : ss) if(mp[i]) t ++;if(t == 4 && n == 4) {//判断EWSN的情况for(int i = 0; i < 4; i ++ ) {if(s[i] == 'W' || s[i] == 'E') cout << 'H';if(s[i] == 'S' || s[i] == 'N') cout << 'R';}cout << endl;return;}map<char, int> mp2;for(int i = 0; i < n; i ++ ) {if(mp2[s[i]] < mp[s[i]] / 2) cout << 'R', mp2[s[i]]++;else cout << 'H';}cout << endl;
}

Problems E. Money Buys Happiness

题意

作者每个月的工资为 k k k,每个月有购买幸福的机会,但是本月工资不能用来购买本月幸福,工资可以累计。每个月的幸福有价值和幸福度,作者希望 n n n个月过后自己的幸福度最多,求幸福度最多为多少?

数据范围:

  • 0 ≤ c i ≤ 1 0 8 , 1 ≤ h i ≤ 1 0 3 0 \le c_i \le 10^8,1 \le h_i \le 10^3 0ci108,1hi103 c i c_i ci表示幸福价值, h i h_i hi表示幸福度。
  • ∑ i h i ≤ 1 0 5 \sum_i h_i\le 10^5 ihi105
  • 1 ≤ n ≤ 50 , 1 ≤ k ≤ 1 0 8 1 \le n \le 50, 1 \le k \le 10^8 1n50,1k108

思路

跟据题目来看,这道题应该是一道 d p dp dp,但是状态转移方程不太好推。

容易注意到幸福度之和比较小,同时 n n n的数据范围也比较小,并且 O ( n × ∑ i h i ) O(n \times \sum_i h_i) O(n×ihi)的时间复杂度也不会超时。

通过观察发现,当幸福度最多时,满足幸福度最多,所用价值最少。因此我们考虑讲幸福度看作背包问题中的价值,幸福价值看作重量,然后把问题转化为求解幸福度最多,并且所用价值最少的情况。那么这道题就转化为了一道01背包问题。

标程

#define int long long 
const int INF = 0x7fffffff;void Solved() { int n, k; cin >> n >> k;vector<PII> a(n + 1);int sum = 0;for(int i = 1; i <= n; i ++ ) {int x, y; cin >> x >> y;a[i] = {x, y};sum += y;}int res = 0;vector<int> f(sum + 1, INF * 10000);//数据范围会爆intf[0] = 0;for(int i = 1; i <= n; i ++ ) {for(int j = sum - a[i].se; j >= 0; j -- ) {//当前工资需要满足能够买本月幸福和枚举的幸福,否则无法转移if((i - 1) * k >= a[i].fi + f[j]) {f[j + a[i].se] = min(f[j + a[i].se], f[j] + a[i].fi);}}}for(int i = sum; i; i -- ) {if(f[i] != INF * 10000) {res = i; break;}}cout << res << endl;
}

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

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

相关文章

ubuntu 配置用户登录失败尝试次数限制

前言&#xff1a; 通过修改pam配置来达到限制密码尝试次数&#xff01; 1&#xff1a;修改 /etc/pam.d/login 配置&#xff08;这里只是终端登录配置&#xff0c;如果还需要配置SSH远程登录限制&#xff0c;只配置下面的 /etc/pam.d/pam.d/common-auth 即可&#xff09; vim…

SpringCloud的Config配置中心,为什么要分Server服务端和Client客户端?

SpringCloud的Config配置中心&#xff0c;为什么要分Server服务端和Client客户端&#xff1f; 在SpringCloud的Config配置中心中分了Server服务端和Client客户端&#xff0c;为什么需要这样分呢&#xff1f;它的思想是所有微服务的配置文件都放到git远程服务器上&#xff0c;让…

Elasticsearch集群搭建学习

Elasticsearch集群聚合、集群搭建 RestClient查询所有高亮算分控制 数据聚合DSL实现Bucket聚合DSL实现Metrics聚合RestAPI实现聚合 拼音分词器如何使用拼音分词器&#xff1f;如何自定义分词器&#xff1f;拼音分词器注意事项&#xff1f; 自动补全数据同步集群搭建ES集群结构创…

蓝桥杯备赛——DP【python】

一、小明的背包1 试题链接&#xff1a;https://www.lanqiao.cn/problems/1174/learning/ 问题描述 输入实例 5 20 1 6 2 5 3 8 5 15 3 3 输出示例 37 问题分析 这里我们要创建一个DP表&#xff0c;DP&#xff08;i&#xff0c;j&#xff09;表示处理到第i个物品时消耗j体…

Atlas 200 DK(Model 3000)安装MindSpore Ascend版本

一、参考资料 mindspore快速安装 二、重要说明 经过博主多次尝试多个版本&#xff0c;Atlas 200 DK&#xff08;Model 3000&#xff09;无法安装MindSpore Ascend版本。 三、准备工作 1. 测试环境 设备型号&#xff1a;Atlas 200 DK(Model: 3000) Operating System Vers…

依赖的各种java库(工具类) :fastjson,lombok,jedis,druid,mybatis等

lombok 功能&#xff1a; Lombok 是一个实用的Java类库&#xff0c;可以通过简单的注解来简化和消除一些必须有但显得很臃肿的Java代码。 导入包&#xff1a;使用Lombok首先要将其作为依赖添加到项目中&#xff0c;在pom.xml文件中手动添加 <dependency><groupId&g…

提取COCO 数据集的部分类

1.python提取COCO数据集中特定的类 安装pycocotools github地址&#xff1a;https://github.com/philferriere/cocoapi pip install githttps://github.com/philferriere/cocoapi.git#subdirectoryPythonAPI若报错&#xff0c;pip install githttps://github.com/philferriere…

【CTF Web】CTFShow web5 Writeup(SQL注入+PHP+位运算)

web5 1 阿呆被老板狂骂一通&#xff0c;决定改掉自己大意的毛病&#xff0c;痛下杀手&#xff0c;修补漏洞。 解法 注意到&#xff1a; <!-- flag in id 1000 -->拦截很多种字符&#xff0c;连 select 也不给用了。 if(preg_match("/\|\"|or|\||\-|\\\|\/|\…

24款奔驰S450升级原厂后排娱乐系统 主动氛围灯有哪些功能

24款奔驰S400豪华升级原厂主动氛围灯与后排娱乐系统&#xff1a;画蛇添足还是锦上添花&#xff1f; 在当今汽车市场竞争激烈的环境下&#xff0c;汽车制造商们为了满足消费者的多元化需求&#xff0c;不断推出各种升级配置和豪华版本。24款奔驰S400豪华版作为奔驰S级的一款重要…

听说部门来了个00后测试开发,一顿操作给我整麻了

公司新来了个同事&#xff0c;听说大学是学的广告专业&#xff0c;因为喜欢IT行业就找了个培训班&#xff0c;后来在一家小公司实习半年&#xff0c;现在跳槽来我们公司。来了之后把现有项目的性能优化了一遍&#xff0c;服务器缩减一半&#xff0c;性能反而提升4倍&#xff01…

uniapp开发vue3监听右滑返回操作,返回到指定页面

想要在uniapp框架中监听左滑或者右滑手势&#xff0c;需要使用touchstart和touchend两个api&#xff0c;因为没有原生的左右滑监听api&#xff0c;所以我们只能依靠这两个api来获取滑动开始时候的x坐标和滑动结束后的x坐标做比对&#xff0c;右滑的话&#xff0c;结束时候的x坐…

飞速提升中文打字,Master of Typing in Chinese for Mac助你一臂之力

Master of Typing in Chinese for Mac是一款专为Mac用户设计的中文打字练习软件。其主要功能包括帮助用户提高打字速度和准确性&#xff0c;培养盲打技巧&#xff0c;使键盘输入更加高效。 打字速度提升&#xff1a;软件提供多种练习模式&#xff0c;如字母、特殊字符、单词和…

FPGA状态机设计详解

一.什么是状态机&#xff1f; 想象一下你正在玩一个电子游戏&#xff0c;角色有多种状态&#xff0c;比如“行走”、“跳跃”、“攻击”等。每当你按下不同的按键或者满足某些条件时&#xff0c;角色的状态就会改变&#xff0c;并执行与该状态对应的动作。这就是状态机的一个简…

Java 类加载和实例化对象的过程

1. 类加载实例化过程 当我们编写完一个*.java类后。编译器&#xff08;如javac&#xff09;会将其转化为字节码。转化的字节码存储在.class后缀的文件中&#xff08;.class 二进制文件&#xff09;。接下来在类的加载过程中虚拟机JVM利用ClassLoader读取该.class文件将其中的字…

GAW-1000D 微机控制钢绞线拉力试验机

一、整机外观图与示意图 外观示意图 性能说明&#xff1a; GAW-1000D型微机控制电液伺服钢绞线拉力试验机主要用于对预应力钢绞线进行抗拉强度测试。由宽调速范围的电液比例伺服阀与计算机及测控单元所组成伺服控制系统&#xff0c;能精确的控制和测量试验全过程。整机由主机…

Unity3D雨雪粒子特效(Particle System)

系列文章目录 unity工具 文章目录 系列文章目录&#x1f449;前言&#x1f449;一、下雨的特效1-1.首先就是创建一个自带的粒子系统,整几张贴图,设置一下就能实现想要的效果了1-2 接着往下看视频效果 &#x1f449;二、下雪的特效&#x1f449;三、下雪有积雪的效果3-1 先把控…

docxtemplater避坑!!! 前端导出word怎么插入本地图片或base64 有完整示例

用docxtemplater库实现前端通过模板导出word&#xff0c;遇到需求&#xff0c;要插图片并转成word并导出&#xff0c;在图片转换这块遇到了问题&#xff0c;网上查示例大多都跑不通&#xff0c;自己琢磨半天&#xff0c;总算搞明白了。 附上清晰完整示例&#xff0c;供参考。 …

SpringCloudAlibaba:6.2RocketMQ的普通消息的使用

简介 普通消息也叫并发消息&#xff0c;是发送效率最高&#xff0c;使用最多的一种 依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSch…

【强化学习的数学原理-赵世钰】课程笔记(三)贝尔曼最优公式

目录 学习引用内容梗概1. 第三章主要有两个内容2. 第二章大纲 二.激励性实例&#xff08;Motivating examples&#xff09;三.最优策略&#xff08;optimal policy&#xff09;的定义四.贝尔曼最优公式&#xff08;BOE&#xff09;&#xff1a;简介五.贝尔曼最优公式&#xff0…

专为汽车内容打造的智能剪辑解决方案

汽车内容创作已成为越来越多车主和汽车爱好者热衷的活动。然而&#xff0c;如何高效、便捷地将行车途中的精彩瞬间转化为高质量的视频作品&#xff0c;一直是困扰着广大用户的一大难题。美摄科技凭借其深厚的视频处理技术和智能分析能力&#xff0c;推出了专为汽车内容记录而生…