Educational Codeforces Round 135 (Rated for Div. 2)

news2024/9/20 20:50:52

A:思维

 题意:箱子里有N个颜色的球(用下标代表不同的颜色),每个颜色的球对应一定的数量,你会进行多次拿球的操作,当箱子里的球颜色一致时,你就不能再拿球了,问最后颜色一致的球是哪个球?

方法:其实很简单,最多颜色的球就是答案。因为它的数量是最多的,别的球都取完了,剩下的一定是它。

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
struct Node{
	int x;
	int idx;
}a[N];

bool cmp(Node a,Node b){
	return a.x>b.x;
}

inline void solve(){
	int n;cin>>n;
	for(int i=1;i<=n;i++){
		int q;cin>>q;
		a[i].x=q;
		a[i].idx=i;
	}
	sort(a+1,a+1+n,cmp);
	cout<<a[1].idx<<"\n";
}

int main(){
	int T;cin>>T;
	while(T--) solve();
}

B:构造

 题意:定义一个排序的价值value为:初始有一个x,从第一个元素p1开始,如果x < p1,x += p1,else x = 0,如此循环,最终x的值为该排列的总价值。请构造一个排列使得该价值最大。

分析:我们发现,max=n+n-1。所以我们必须构造一个数组,使得倒数第三个位置的值为0,这样才能保证得到最大值 。当n为偶数时候,我们发现,构造为... n-2,n-3,...1,n-1,n,数字1的位置会是0.如果n为奇数时,我们可以将1放在最前面,构造为1,...n-2,n-3,....3,2,n-1,n.数字2的位置会是0。

代码:

#include<bits/stdc++.h>
#define int long long
#define fast ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
const int N=2e5+10;

inline void solve(){
    int n;cin>>n;
    if(n%2==0){
        for(int i=n-2;i>=1;i--) cout<<i<< " ";
        cout<<n-1<<" "<<n<<"\n";
    }
    else{
        cout<<1<< " ";
        for(int i=n-2;i>=2;i--) cout<<i<< " ";
        cout<<n-1<<" "<<n<<"\n";
    }
}

signed main(){
	fast;
	int T;cin>>T;
	while(T--) solve();	
}

 C:思维+贪心

题意:给定两个数组a和b,每次进行一次操作可以使其中一个数组中的一个数变成其十进制的位数。求使得在不考虑顺序的情况下,a和b数组相等的最少操作数。

思路:考虑开两个堆,每次从大到小贪,因为大的数字只能变小。如果堆顶相同直接将这两个元素pop掉。如果不同,将更大的数字操作一次重新放到堆里,因为这个数一定没有其他数可以与之匹配。一直进行到堆顶都为1即可。

代码:

#include<bits/stdc++.h>
#define int long long
#define fast ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
const int N=2e5+10;
int a[N],b[N];

int get(int x){
	int ans=0;
	while(x){
		ans++;
		x/=10;
	}
	return ans;
}

inline void solve(){
    int n;cin>>n;
    priority_queue<int>aa,bb;
    for(int i=1;i<=n;i++) cin>>a[i],aa.push(a[i]);
    for(int i=1;i<=n;i++) cin>>b[i],bb.push(b[i]);
    int ans=0;
    while(aa.size()&&bb.size()&&(aa.top()>1||bb.top()>1)){
    	bool ok=false;
    	while(aa.size()&&bb.size()&&aa.top()==bb.top()){
    		aa.pop();bb.pop();
    		ok=true;
		}
		if(ok) continue;
		if(aa.top()>bb.top()){
			int x=aa.top();
			ans++;aa.pop();
			aa.push(get(x));
		}
		else{
			int x=bb.top();
			ans++;bb.pop();
			bb.push(get(x));
		}
	}
	cout<<ans<<"\n";
    
}

signed main(){
	fast;
	int T;cin>>T;
	while(T--) solve();	
}

 D:博弈

题意:给定一个字符串,两人每次可以从头和尾拿走一个字符,拿走的字符放到字符串的开头,字典序小的人获胜,求最终谁赢或者平手。

分析:我们发现,Alice先手,那么Bob就不可能赢,Bob所能争取的最大情况就是Draw(平局)。为什么?

因为,Alice先手,那么Alice一定会选择字母最小的,Bob不是傻子,如果字符串为abaa,Alice选择了a,剩余字符串为ab,那么Bob肯定会选a。所以,Bob会尽量使自己平局,那么Alice肯定想赢,所以,我们只需要判断满足平局的字符串即可。不满足平局的字符串,就一定是Alice赢!

那么这里的问题就在于:平局字符串有什么性质?

举几个平局的串:aabbcc  acbbca.....发现什么特点了吗?

特点:如果每个相同的字母都满足(存在偶数个)位于相邻位置,或者是一个在前面一个在后面的情况,那么就是平局,否则就是Alice赢。所以,这里只需要把串扫一遍即可。

代码: 

#include<bits/stdc++.h>
#define int long long
#define fast ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
const int N=2e5+10;

inline void solve(){
    string s;cin>>s;
    int n=s.size();
    bool ok=false;
    for(int i=0;i<n/2+1;i++){
    	if(s[i]!=s[n-i-1]){
    		for(int j=i;j<n-i-1;j+=2){
    			if(s[j]!=s[j+1]) ok=true;
			}
			break;
		}
	}
    if(ok) cout<<"Alice\n";
    else cout<<"Draw\n";
}

signed main(){
	fast;
	int T;cin>>T;
	while(T--) solve();	
}

 

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

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

相关文章

免疫抑制作用的转录抑制分子

科研人员发现&#xff1a;社交失败导致了小鼠焦虑行为&#xff0c;进而抑制了化疗药物的治疗过程&#xff0c;加速了肿瘤的发展。在正常小鼠中&#xff0c;人为给予外源性糖皮质激素会使得 Tsc22d3(一个具有很强免疫抑制作用的转录抑制分子)在肿瘤浸润树突细胞(TIDC)的表达上调…

Q3营收同比翻三倍,踩猛“油门”零跑必将领跑?

近日&#xff0c;零跑汽车公布三季度财报。从财报成绩来看&#xff0c;有喜有忧。喜的是销量营收同比环比均出现大幅度增长&#xff0c;忧的是亏损同比扩大86.11%。 营收同比猛增398.5%&#xff0c;销量能否穿越迷雾&#xff1f; 详细来看&#xff0c;三季度零跑汽车销量3.56万…

【附源码】计算机毕业设计JAVA旅行指南网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; Springboot mybatis Maven Vue 等等组成&#xff0c;B/…

HOOPS学习笔记

Hoops简介 HOOPS Visualize由一套集成的组件组成&#xff0c;可快速开发高性能设计、可视化和工程应用程序。HOOPS 3DF在每个组件中保持平台独立性&#xff0c;在Windows、Linux和Mac OS X上提供跨平台解决方案。 HOOPS Visualize包含如下组件&#xff1a; 1.HOOPS/3dGS - HO…

vue+express+mysql+elementUI实现前后端交互增删改查

简介&#xff1a;使用 Vue koa koa2-router mySql elementUI实现前后端交互 页面整体效果图&#xff1a; 编辑页面&#xff1a; 添加页面&#xff1a; 删除操作&#xff1a; 数据库客户端使用Navicat for mysql 当然你需要下载安装 在数据库新建 stuInfo 表和表结构 st…

Github点赞接近 100k 的Spring Boot学习教程+实战项目推荐

很明显的一个现象&#xff0c;除了一些老项目&#xff0c;现在 Java 后端项目基本都是基于 Spring Boot 进行开发&#xff0c;毕竟它这么好用以及天然微服务友好。不夸张的说&#xff0c;Spring Boot 是 Java 后端领域最最最重要的技术之一&#xff0c;熟练掌握它对于 Java 程序…

SpringBoot-快速入门

目录 SpringBoot 概念 Spring缺点 SpringBoot 功能 快速入门案例&#xff1a;需求 案例&#xff1a;实现步骤 示例 小结 快速构建SpringBoot工程 SpringBoot 概念 SpringBoot提供了一种快速使用Spring的方式基于约定优于配置的思想&#xff0c;可以让开发人员不必在配置…

QML地图Map中使用QPainterPath,并显示任意点经纬度位置

QML地图Map中提供了供绘制图形的组件&#xff0c;例如MapPolyline&#xff0c;MapCircle等&#xff0c;但是这些组件在绘制复杂轨迹时就显得功能不够全面&#xff0c;因此我将QPainterPath在Map中进行使用并进行绘制&#xff0c;并使用C和Qml中的函数进行相互调用计算获取点屏幕…

macOS 的「预览」有几种用法

如果要评选 macOS 最低调的 App &#xff0c;「预览」可能就会位列其中之一。「预览」和 macOS 结合异常紧密&#xff0c;甚至让人都会遗忘它还是个 App。毕竟大多数的时候&#xff0c;提到「预览」就会想到操作系统的一部分。而实际上&#xff0c;「预览」那「瘦小」的身躯之内…

Unity3D赛车游戏+脚本基础

前言 游戏对象实例化 Scenes游戏场景 GameObject游戏对象 Component组件 Component使用方法 预制体 Unity事件函数 Instantiate():实例化对象 什么是Time.deltaTime Transform的移动&#xff0c;旋转和缩放 实战:赛车游戏 运行演示 具体步骤 游戏打包流程 前言 …

智慧教育解决方案-最新全套文件

智慧教育解决方案-最新全套文件一、建设背景二、思路架构三、建设方案四、获取 - 智慧教育全套最新解决方案合集一、建设背景 目前数字化校园现状&#xff1a; 各自为政 分散建设 各个学校组成的业务系统、网站五花八门&#xff0c;形式多样。形式单一 功能简单 学校网站主要…

为什么同一表情‘‘.length==5但‘‘.length==4?本文带你深入理解 String Unicode UTF8 UTF16

背景 为什么同样是男人&#xff0c;但有的男人&#x1f9d4;‍♂️.length 5&#xff0c;有的男人&#x1f9d4;‍♂.length 4呢&#xff1f; 这二者都是JS中的字符串&#xff0c;要理解本质原因&#xff0c;你需要明白JS中字符串的本质&#xff0c;你需要理解 String Unic…

vlan trunk stp攻防

目录 一、VLAN、Trunk面临的安全风险 trunk干道攻击DTP攻击&#xff08;思科特有&#xff09; VLAN跳跃攻击 STP根桥攻击 二、攻击防护 一、VLAN、Trunk面临的安全风险 trunk干道攻击DTP攻击&#xff08;思科特有&#xff09; 在华为设备中trunk链路是手工指定的&#xf…

A-LEVEL Chemistry考点分析

A-LEVEL化学其实不是一门很难的科目&#xff0c;并没有太多的内容&#xff0c;虽说包含十几章的内容但其实每章都是相互关联&#xff0c;一通百通&#xff0c;掌握元素周期表的实质&#xff0c;基本上就没有什么问题了&#xff0c;重在理解&#xff01;知识点多而不碎&#xff…

如何一站式管理固定资产的全生命周期?

目前很多企业还在沿用之前传统的Excel表格来管理和盘点固定资产&#xff0c;不但加大了企业固定资产管理员的工作量&#xff0c;而且在实际的操作过程中容易出现错登记、漏盘点、无法查询操作履历等各种小插曲。而且随着企业固定资产数量、种类、分支机构以及人员的不断增加&am…

juc之常用4大并发工具类 (四)

CountDownLatch: 减少计数CyclicBarrier: 循环栅栏Semaphore: 信号量ExChanger: 交换器 文章目录1.CountDownLatch2.CyclicBarrier3.Semaphore4.Exchanger1.CountDownLatch CountDownLatch,俗称闭锁,作用是类似加强版的 Join,是让一组线程等待其他的线程完成工作以后才执行 就…

数仓开发之DWD层(四)

目录 十一&#xff1a;工具域优惠券领取事务事实表 11.1 主要任务&#xff1a; 11.2 思路分析&#xff1a; 11.3 图解&#xff1a; 十二&#xff1a;工具域优惠券使用&#xff08;下单&#xff09;事务事实表 12.1 主要任务&#xff1a; 12.2 思路分析&#xff1a; 12.3…

[附源码]Python计算机毕业设计 社区老人健康服务跟踪系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

Java项目实战【超级详细】

软件开发流程 角色分工 开发环境搭建 创建普通Maven项目编写pom.xml导入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instanc…

【MQ简单模式】

14天阅读挑战赛 MQ简单模式 1、模式介绍 需求&#xff1a;使用简单模式完成消息传递 步骤&#xff1a; ① 创建工程&#xff08;生成者、消费者&#xff09; ② 分别添加依赖 ③ 编写生产者发送消息 ④ 编写消费者接收消息 在上图的模型中&#xff0c;有以下概念&#xff1a; ⚫…