Polynomial Round 2022 (Div. 1 + Div. 2, Rated, Prizes!) A-C

news2025/5/16 0:44:13

比赛链接

目录

A. Add Plus Minus Sign

题意:

思路:

代码:

B. Coloring

题意:

思路:

代码:

C. Ice and Fire

题意:

思路:

代码:


A. Add Plus Minus Sign

题意:

给你一个长度为m的字符串,你可以对其中穿插“-”或者“+”,问你如何穿插可以使结果的绝对值是最小的。

思路:

用res保存当前的值,如果是0就+,否则就-;

代码:


#include<cstdio>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <math.h>
#include<vector>
#include<queue>
#include<map>
#define sc_int(x) scanf("%d", &x)
#define sc_ll(x) scanf("%lld", &x)
#define pr_ll(x) printf("%lld", x)
#define pr_ll_n(x) printf("%lld\n", x)
#define pr_int_n(x) printf("%d\n", x)
#define ll long long 
using namespace std;

const int N=100000+100;
int n ,m,h;
char s[N];



void solve()
{
	cin>>n>>s+1;
	int res=0;	
	if(s[1]=='1')res++;

	for(int i =2;i<=n;i++)
	{
		if(res==0){
		cout<<"+";
		if(s[i]=='1')
		res++;
		}
		else {
		cout<<"-";
		if(s[i]=='1')
		res--;		
		}
	}
	cout<<endl;
	
	return ;
}


int main()
{
	int t;
	sc_int(t);
	while(t--)
	solve();
	
	return 0;
}

B. Coloring

题意:

一个纸带,上面一行有n个单元格,他想给这些单元格涂上m种颜色,第i种颜色必须使用ai次,并且对于每k个连续的单元格,它们的颜色必须是不同的。

思路:

因为连续k个单元格的颜色必须是不同的,那么除了n%k之外的部分,每个颜色最多只能有n/k个,那么只要当前颜色大于n/k+1,那么一定就是NO:否则如果等于n/k+1,那么如果n%k的位置还有,那么就可以为该元素提供一个位置,同时去掉一个位置:如果没有位置也变成了NO:

最后如果都不满足就是YES,输出即可。

代码:


#include<cstdio>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <math.h>
#include<vector>
#include<queue>
#include<map>
#define sc_int(x) scanf("%d", &x)
#define sc_ll(x) scanf("%lld", &x)
#define pr_ll(x) printf("%lld", x)
#define pr_ll_n(x) printf("%lld\n", x)
#define pr_int_n(x) printf("%d\n", x)
#define ll long long 
using namespace std;

const int N=100000+100;
int n ,m,h;
ll s[N];
vector<pair<int, int> > color[N];
ll x[N],y[N];
ll xx[N],yy[N];


void solve()
{
	int k;
	cin>>n>>m>>k;

	

	ll ma=0;
	for(int i =1;i<=m;i++){
	cin>>s[i];
	ma=max(ma,s[i]);
	}
	if(k==1){
		cout<<"YES\n";
		return ;
	}	
	int t=n%k;
	int tt=n/k;

    for(int i =1;i<=m;i++)
    {
        if(s[i]>tt+1) 
        {
            cout<<"NO\n";
            return;
        }else if(s[i]==tt+1)
        {
            if(t) t--;
            else 
            {
                 cout<<"NO\n";
                return;
            }
        }
    }
            cout<<"YES\n";
	
	return ;
}


int main()
{
	int t;
	sc_int(t);
	while(t--)
	solve();
	
	return 0;
}

s_i-1

C. Ice and Fire

题意:

给你n个人,第i个人的力量值为i,一共会进行n-1次比赛,比赛会随机选两个人然后根据s_i取获胜的人,问你有多少个人可以获胜到最后。

s是我比赛的n-1次比赛的情况,s_i如果是1,那么取两个人的力量值大的获胜,

如果是0,取小的获胜。

思路:

我们总是把现在场上还剩余的人按照编号从小到大排序,那么一个0可以淘汰掉任意一个不是最左侧(最小)的人;1可以淘汰掉任意一个不是最右侧的人

首先如果s_i!=s_i-1,那就一定有i-1个人可以获胜(除了最左边或者最右边的)

否则就根据当前的连续的l或者r来求值即可。

代码:


#include<cstdio>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <math.h>
#include<vector>
#include<queue>
#include<map>
#define sc_int(x) scanf("%d", &x)
#define sc_ll(x) scanf("%lld", &x)
#define pr_ll(x) printf("%lld", x)
#define pr_ll_n(x) printf("%lld\n", x)
#define pr_int_n(x) printf("%d\n", x)
#define ll long long 
using namespace std;

const int N=210000+100;
int n ,m,h;
char s[N];



void solve()
{
	cin>>n>>s+1;
	int l=0,r=0;
	int m =strlen(s+1);
	for(int i =1;i<=m;i++)
	{
		if(s[i]=='1')l++;
		else r++;
		if(i>=2&&s[i]!=s[i-1]){
			printf("%d ",i);
		r=l=0;
		if(s[i]=='1')l++;
		else r++;
		}
		else{
			if(s[i]=='1')	printf("%d ",i-l+1);
			else 	printf("%d ",i-r+1);
		}
	}
	printf("\n");
	
	return ;
}


int main()
{
	int t;
	sc_int(t);
	while(t--)
	solve();
	
	return 0;
}

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

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

相关文章

半导体芯片制造过程可以用哪种测量仪器

近年来&#xff0c;面对持续高涨的芯片需求&#xff0c;半导体行业生产迎来了高难度挑战——对芯片工艺要求更精细&#xff0c;从5nm到3nm&#xff0c;甚至是2nm。“先进封装”的提出&#xff0c;是对技术的新要求&#xff0c;也是对封装工艺中材料和设备的全新考验。 芯片身上…

节点电力市场生产商的战略竞标:凸松弛方法(Matlab实现)

目录 1 电力市场 1.1 什么是电力市场 1.2 电力市场发展历程 1.3 对传统电力系统理论的挑战 2 节点电力市场生产商的战略竞标&#xff1a;凸松弛方法 2.1 简介 2 Matlab代码 1 电力市场 1.1 什么是电力市场 市场&#xff1a;商品交换(交换商品的过程称交易)关系的总和 …

pikachu靶场验证码绕过详解

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是pikachu靶场验证码绕过详解。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强调&#xff1a;严禁对…

endo-BCN-PEG3-Biotin,endo-BCN三聚乙二醇-生物素

【中文名称】endo-BCN三聚乙二醇-生物素 【英文名称】 endo-BCN-PEG3-Biotin&#xff0c;BCN-PEG3-Biotin (endo) 【CAS号】1263166-92-2 【分子式】C29H46N4O7S 【分子量】594.77 【基团部分】BCN 【纯度标准】95% 【外观颜色】 白色固体 &#xff08;具体由其分子量大小决定…

MyBatis学习 | 简介HelloWord

文章目录一、简介二、HelloWord2.1 环境搭建2.2 创建全局配置文件2.3 创建工具类2.4 创建数据库表和对应的JavaBean2.5 创建SQL映射文件2.6 非接口式与接口式编程2.6.1 非接口式编程2.6.2 接口式编程⭐2.7 简单总结学习地址&#x1f517; https://www.bilibili.com/video/BV1mW…

动态规划问题——换钱的方法数

题目&#xff1a; 给定数组arr&#xff0c;arr中所有的值都为正数且不重复。每个值代表一种面值的货币&#xff0c;每种面值的货币可以使用任意张&#xff0c;再给定一个整数aim&#xff0c;代表要找的钱数&#xff0c;求换钱有多少种方法。 举例&#xff1a; arr [5, 10, 2…

【PCL1.11.0+win10+vs2019】环境配置/ 点云格式转换及可视化

文章目录一、安装1.1 下载PCL1.2 安装PCL1.3 安装OSGeo4W二、配置2.1 配置环境变量2.2 配置VS2019三、点云格式转换以及可视化参考一、安装 1.1 下载PCL 首先我们需要下载pcl1.11.0 &#xff0c;这个版本与vs2019对应。 有两种下载方法&#xff1a;百度网盘、官网下载。二选一…

docker原理及服务编排

一、什么是docker Docker 是一个开源项目&#xff0c;诞生于2013年初&#xff0c;最初是dotCloud公司内部的一个业余项目。它基于Google公司推出的Go语言实现。项目后来加入了Linux基金会&#xff0c;遵从了Apache 2.0协议&#xff0c;项目代码在GitHub上进行维护。 Docker 项…

【毕业设计_课程设计】基于Spark网易云音乐数据分析

文章目录0 项目说明1 系统模块2 分析内容3 界面展示4 项目工程0 项目说明 基于Spark网易云音乐数据分析 提示&#xff1a;适合用于课程设计或毕业设计&#xff0c;工作量达标&#xff0c;源码开放 1 系统模块 包含爬虫,Scala代码,Spark,Hadoop,ElasticSearch,logstash,Flume…

基于ChatGPT实现微信智能机器人

ChatGPT近期以强大的对话和信息整合能力风靡全网&#xff0c;可以写代码、改论文、讲故事&#xff0c;几乎无所不能&#xff0c;这让人不禁有个大胆的想法&#xff0c;能否用他的对话模型把我们的微信打造成一个智能机器人&#xff0c;可以在与好友对话中给出意想不到的回应&am…

汇编语言笔记——接口技术与编程

文章目录传送门储存系统与技术材料高速储存器缓冲储存器&#xff08;Cache&#xff09;材料&#xff0c;局部性&#xff0c;访问方式Cache全相联映射Cache交换与一致性单核CPU一致性处理多核CPU的MESI协议主储存器&#xff08;内存&#xff09;主要技术指标容量带宽内存模组与内…

【JavaWeb】Servlet

Servlet简介 Servlet是sun公司开发动态web的一门技术Sun在这些API中提供一个接口叫做&#xff1a;Servlet&#xff0c;如果想开发一个Servlet程序&#xff0c;需要编写一个类&#xff0c;实现Servlet接口把开发好的Java类部署到web服务器中 把实现了Servlet接口的Java程序叫做…

【Anime.js】——Anime.js源码核心理解

一、Anime.js整体结构 Anime.js的强大之处在于代码量非常少&#xff0c;但功能却非常强大。让我们一起来探索Anime.js源码的核心吧~ Anime.js之所以能如此强大主要是因为它的代码结构设计的非常巧妙合理&#xff0c;所以我们想要掌握Anime.js的核心&#xff0c;首先我们要了解…

Linux内核基础篇——动态输出调试

文章目录配置内核编译选项debugfs文件系统挂载动态输出使用实际案例动态输出&#xff08;dynamic print&#xff09;是内核子系统开发者最喜欢的输出技术之一。 上篇说到printk调试&#xff0c;但printk是全局的&#xff0c;只能设置输出等级。而动态输出可以动态选择打开某个…

Tensorflow Serving部署推荐模型

Tensorflow Serving部署推荐模型 1、找到当前模型中定义的variables&#xff0c;并在此定义一个saver用于保存模型参数 def saveVariables(self):variables_dict {}variables_dict[self.user_embedding.op.name] self.user_embeddingvariables_dict[self.item_embedding.op…

【LeetCode】1971. 寻找图中是否存在路径

题目描述 有一个具有 n 个顶点的 双向 图&#xff0c;其中每个顶点标记从 0 到 n - 1&#xff08;包含 0 和 n - 1&#xff09;。图中的边用一个二维整数数组 edges 表示&#xff0c;其中 edges[i] [ui, vi] 表示顶点 ui 和顶点 vi 之间的双向边。 每个顶点对由 最多一条 边连…

犀牛插件开发-基础核心-技术概览-总体架构-教程

文章目录1.概述2.基础核心2.1.C Rhino 核心2.2.openNURBS2.3.C SDK3.C Stack3.1.C Plugins3.2.RhinoScript4.NET Stack4.1.C API4.2.NET Framework4.3.RhinoCommon4.4.Eto4.5.net插件4.6.Grasshopper组件4.7.Python脚本5.相关主题1.概述 《Rhinoceros》由许多层组成——用多种…

细说OA系统的繁荣发展

改革开放以来&#xff0c;科技发展突飞猛进&#xff0c;我们生活的方方面面都受到了巨大影响。随着信息化时代的到来&#xff0c;企业的办公方式也发生了巨大的改变&#xff0c;OA系统随之走进了大众的视野。细数这四十几年&#xff0c;OA办公系统已经由一个异想天开的想法变成…

centos7.8离线安装pg和postgis

安装包下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1MxJc-5Ws6OPTRAoC-2srJw 提取码&#xff1a;is2q 1.centos7.8 离线安装pg操作步骤 这里基于centos7.8空白系统操作实践写的文档&#xff0c;系统一致的情况下可以照搬教程操作安装&#xff0c;镜像为…

1.0、Hibernate-快速入门初体验

1.0、Hibernate-快速入门初体验 Hibernate 和 mybatis 一样是 ORM (Object Relation Mapping) 对象关系映射框架&#xff0c;将面向对象映射成面向关系。 如何使用呢&#xff1f; 1、导入依赖&#xff1b; 2、创建 Hibernate 配置文件&#xff1b; 3、创建实体类&#xff1b; 4…