Codeforces Round 987 (Div. 2)题解记录(A~D)

news/2024/11/16 0:49:26/文章来源:https://www.cnblogs.com/cjcf/p/18548930

比赛链接:https://codeforces.com/contest/2031
明天再补题面,A题漏看题意了卡了到19分才过;C题知道9,16,25的情况,但是一直没去想27,卡了50多分钟;D题最后30秒交,有个判断删了就可以过,差点点。今天运势不佳,各种错误并发,太累了,明天再补D思路。

A. Penchick and Modern Monument

思路:就是看哪个数最多,然后n-这个最大值即可。

#include<iostream>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<deque>
#include<cctype>
#include<string.h>
#include<math.h>
#include<time.h>
#include<random>
#include<stack>
#include<string>
#define ll                                     long long
#define lowbit(x) (x & -x)
#define endl "\n"//                           交互题记得删除
using namespace std;
mt19937 rnd(time(0));
const ll mod = 998244353;
ll ksm(ll x, ll y)
{
ll ans = 1;
while (y)
{
if (y & 1)
{
ans = ans % mod * (x % mod) % mod;
}
x = x % mod * (x % mod) % mod;
y >>= 1;
}
return ans % mod % mod;
}
ll gcd(ll x, ll y)
{
if (y == 0)
return x;
else
return gcd(y, x % y);
}
void fio()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
}
ll dp[500][55];
ll a[250000];
int main()
{fio();ll t;cin>>t;while(t--){ll n;cin>>n;ll ans=99999999999;for(ll i=1;i<=n;i++){cin>>a[i];for(ll j=1;j<=50;j++){if(a[i]==j)dp[i][j]=0;else dp[i][j]=1;}for(ll j=1;j<=50;j++){ll u=99999999;for(ll k=1;k<=j;k++){u=min(dp[i][k],u);}dp[i][j]=dp[i-1][j]+u;if(i==n)ans=min(ans,dp[i][j]);}}cout<<ans<<endl;}
}

B. Penchick and Satay Sticks

思路:通过题目要求可以推得,如果一个数离他原本位置距离大于1,则一定无解

#include<iostream>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<deque>
#include<cctype>
#include<string.h>
#include<math.h>
#include<time.h>
#include<random>
#include<stack>
#include<string>
#define ll                                     long long
#define lowbit(x) (x & -x)
#define endl "\n"//                           交互题记得删除
using namespace std;
mt19937 rnd(time(0));
const ll mod = 998244353;
ll ksm(ll x, ll y)
{
ll ans = 1;
while (y)
{
if (y & 1)
{
ans = ans % mod * (x % mod) % mod;
}
x = x % mod * (x % mod) % mod;
y >>= 1;
}
return ans % mod % mod;
}
ll gcd(ll x, ll y)
{
if (y == 0)
return x;
else
return gcd(y, x % y);
}
void fio()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
}
ll a[250000];
int main()
{fio();ll t;cin>>t;while(t--){ll n;cin>>n;map<ll,ll>q;ll ans=0;for(ll i=1;i<=n;i++){cin>>a[i];if(abs(a[i]-i)<=1)continue;else ans=1;}if(ans==0)cout<<"YES"<<endl;else cout<<"NO"<<endl;}
}

C. Penchick and BBQ Buns

思路:偶数直接1 ,1 ,2, 2,3,3...即可,奇数,考虑吧出现x1x1+x2x2=(x1+x2)*(x1+x2)情况即可,只能3,4,5存在,所以对于长度等于27的数组构造方法,可以是先9,16,26相同为1,然后27,23等于2,其余空格为3,3;4,4慢慢填进去即可,对于大于27的奇数数组,多的部分直接把多出来的部分按照偶数数组的形式放置即可

#include<iostream>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<deque>
#include<cctype>
#include<string.h>
#include<math.h>
#include<time.h>
#include<random>
#include<stack>
#include<string>
#define ll                                     long long
#define lowbit(x) (x & -x)
#define endl "\n"//                           交互题记得删除
using namespace std;
mt19937 rnd(time(0));
const ll mod = 998244353;
ll ksm(ll x, ll y)
{
ll ans = 1;
while (y)
{
if (y & 1)
{
ans = ans % mod * (x % mod) % mod;
}
x = x % mod * (x % mod) % mod;
y >>= 1;
}
return ans % mod % mod;
}
ll gcd(ll x, ll y)
{
if (y == 0)
return x;
else
return gcd(y, x % y);
}
void fio()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
}
ll a[250000];
int main()
{fio();ll t;cin>>t;while(t--){ll n;cin>>n;ll k=n;for(ll i=1;i<=n;i++)a[i]=0;if(n&1){if(n>=27){ll cnt=1;while(n>27){a[n]=cnt;a[n-1]=cnt;n-=2;cnt++;}a[27]=a[23]=cnt;cnt++;a[26]=a[10]=a[1]=cnt;cnt++;for(ll i=1;i<=27;i++){if(a[i]==0){a[i]=cnt;a[i+1]=cnt;cnt++;}}for(ll i=1;i<=k;i++)cout<<a[i]<<" ";cout<<endl;}else cout<<-1<<endl;}else {ll cnt=1;for(ll i=1;i<=n;i+=2){cout<<cnt<<" "<<cnt<<" ";cnt++;}	cout<<endl;}}
}

D. Penchick and Desert Rabbit

思路:

#include<iostream>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<deque>
#include<cctype>
#include<string.h>
#include<math.h>
#include<time.h>
#include<random>
#include<stack>
#include<string>
#define ll                                     long long
#define lowbit(x) (x & -x)
#define endl "\n"//                           交互题记得删除
using namespace std;
mt19937 rnd(time(0));
const ll mod = 998244353;
ll ksm(ll x, ll y)
{
ll ans = 1;
while (y)
{
if (y & 1)
{
ans = ans % mod * (x % mod) % mod;
}
x = x % mod * (x % mod) % mod;
y >>= 1;
}
return ans % mod % mod;
}
ll gcd(ll x, ll y)
{
if (y == 0)
return x;
else
return gcd(y, x % y);
}
void fio()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
}
ll a[654000];
ll b[625000];
ll pre[625000];
ll sub[625000];
int main()
{
fio();ll t;cin>>t;while(t--){ll n;cin>>n;//ll ans=0;sub[n+1]=999999999999;for(ll i=1;i<=n;i++)cin>>a[i],pre[i]=max(a[i],pre[i-1]),b[i]=a[i];ll u=99999999999;ll ans;for(ll i=n;i>=1;i--){if(i==n){u=min(u,a[i]);ans=max(a[i],pre[i-1]);b[i]=ans;}if(pre[i-1]==ans||a[i]==ans){b[i]=ans;u=min(u,a[i]);}else if(pre[i-1]>u||a[i]>u){b[i]=ans;u=min(u,a[i]);}			else {ans=max(pre[i-1],a[i]);u=a[i];b[i]=ans;}}for(ll i=1;i<=n;i++)cout<<b[i]<<" ";cout<<endl;}
}

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

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

相关文章

CTF/9/pwnerTool,一个适用于CTF中自动对Pwn题目文件进行信息收集,并且生成基础做题py文件的Pwn工具

CTF中自动对Pwn题目文件进行信息收集,并且生成基础做题py文件的Pwn工具,适用于Ubuntu 随手写的,写的不好请轻喷. 一个用于ctf对Pwn题目文件进行信息收集,打包了检查文件类型、检查类型保护、新建py文件、寻找传参工具的过程。 同时可以修补题目给出的动态库和libc文件保证本…

Spacedrive :一款开源超高颜值功能强大的跨平台文件管理器

我们的文件越来越来越多,大量的文件分布在网盘,硬盘里面。即使电脑硬盘里面,也是分布在不同的地方,管理起来越来非常麻烦。 要是能够有一个软件,可以将网盘,硬盘和网络驱动器统一起来管理,将会是多么的方便。 今天就给大家推荐一个高颜值的文件管理软件——spacedrive,…

【shell脚本】监控IP频繁登录服务器脚本

该脚本的作用是监控IP登录失败次数,如果某个IP的登录失败次数超过设定的最大次数,则阻止该IP的进一步登录尝试。通过iptables防火墙阻止连接,当一个IP尝试登录次数超过5次时,iptables会阻止来自该IP的所有连接。 #!/bin/bashfunction secrity(){ # 设置要监控的登录失败次数…

[OtterCTF 2018]-内存取证-WP

看了很多大佬的博客,才发现他们的文章都会写摘要~~ 我就没写过哈哈(比较懒)。我的博客比较水,内容少而质量低,分类挺乱的,后面慢慢改善吧!写这篇主要是为了学习 vol2 的使用(八神推荐的嘿嘿),有不好的地方可以指点一下![OtterCTF 2018] WP [OtterCTF 2018] What the…

vm最小化安装centos

前期准备 VMware Workstation CentOS-7-x86_64-DVD-2009.iso http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/ 创建虚拟机默认下一步,选择稍后安装接着默认下一步,完成后编辑虚拟机设置镜像安装centos 选择第一个Install CentOS 7接着一路默认 配置静态ip 查看子网地…

《Django 5 By Example》阅读笔记:p105-p164

《Django 5 By Example》学习第5天,p105-p164总结,总计60页。 一、技术总结 1.文章标签功能 Django自带django-taggit。 2.自定义template tags 3.roadmap功能 4.RSS功能 5.full-text搜索功能 这里使用的是Postgresql,使用pip install psycopg安装后,执行“python manage.py…

11/15

好讨厌现在的自己 我的能量太低了 需要不断的慰藉 我喜欢逃避 野心家,思想家,我真的sb 没有成就感 绝望绝望绝望绝望绝望今天很drama,不想说什么了,难受,以后再写 明天计划C语言5题【今天少了一道】 下午去比赛 前端考核作业【1/2】可能睡觉睡少了,不开心?洗洗睡了

团队项目4——项目冲刺-4

每日站立式会议昨天已完成的工作: 杨睿:完善社区活动模块接口 个人中心模块接口木萨江:投诉反馈页面开发 管理员管理用户相关接口巴音才次克:物业报修相关接口李佳聪:检查车位信息的删查改接口是否符合需求今天计划完成的工作: 杨睿:完善管理页面 对接个人中心接口木萨江…

团队作业4——项目冲刺5

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/作业要求 需求&原型改进、系统设计、Alpha任务分配计划、测试计划团队项目仓库 https://github.com/bitpurleclude/GDUT-Goofish/issues团队成员 李嘉锐 车峤锐 于海洋 林进光 黄健 钟启腾 钟月灿1…

基于Java+SSM+JSP+MYSQL实现的宠物领养收养管理系统功能设计与实现二

运行环境:jdk1.8、mysql5.x、idea、maven3.5/3.5 如果环境一致 运行不起来可以右侧联系我,包运行。 功能:管理员信息数据层Mapper、宠物信息数据层Mapper、宠物领养记录信息数据层Mapper、宠物评论信息数据层Mapper、宠物评论回复信息数据层Mapper、用户信息数据层Mapper 技…

Alpha冲刺(3/14)——2024.11.14

目录一、团队成员分工与进度二、成员任务问题及处理方式三、冲刺会议内容记录会议内容四、GitHub签入记录及项目运行截图GitHub签入记录五、项目开发进展及燃尽图项目开发进展燃尽图六、团队成员贡献表 一、团队成员分工与进度成员 完成的任务 完成的任务时长 剩余时间施靖杰 编…

「AI Infra 软件开源不是一个选项,而是必然」丨云边端架构和 AI Infra专场回顾@RTE2024

在人工智能和开源技术蓬勃发展的当下,AI Infra 项目正经历着日新月异的变革。从跨平台运行时到云边端 AI 基础设施,再到多模态知识助手,创新浪潮席卷而来。这些进步不仅显著提升了技术指标,也为实时音视频处理、边缘计算、大模型应用等场景开辟了新的可能性。在 RTE 2024 大…