Codeforces Round 860 (Div. 2)

news/2025/2/12 12:24:54/

A

Showstopper

题意:给你两个长度为n的数组a和b,每次操作你可以互换a[i]与b[i],问最终能否满足

思路:若a[i]>b[i],我们就进行操作。这样数组b元素都是较大的, 一定比不操作更优。最后判断是否满足条件即可。

#include <bits/stdc++.h>
#define ios ios::sync_with_stdio(0),cin.tie(0)
#define PII pair<int,int>
typedef long long ll;
const int N=1e6+10;
const int inf=0x3f3f3f3f;using namespace std;
int n;
int a[N],b[N];
void solve()
{cin>>n;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++) cin>>b[i];if(a[n]>b[n]) swap(a[n],b[n]);for(int i=1;i<=n;i++)if(a[i]>b[i])swap(a[i],b[i]);bool f=1;for(int i=1;i<=n;i++){if(a[i]>a[n]||b[i]>b[n]) {f=0;break;}} if(f) cout<<"Yes\n";else cout<<"No\n";
}
signed main()
{//freopen("input.txt","r",stdin);//freopen("output.txt","w",stdout);ios;int _t=1;cin>>_t;while(_t--) solve();system("pause");return 0;
}

B

Three Sevens

题意:有m轮抽奖活动,中奖者无法参与后续抽奖。告诉你每轮来抽奖的人,问能否找到合法的每轮的获奖者。

思路:若某人在后续不再出现,那么他就可以是获奖者。

#include <bits/stdc++.h>
#define ios ios::sync_with_stdio(0),cin.tie(0)
#define PII pair<int,int>
typedef long long ll;
const int N=1e6+10;
const int inf=0x3f3f3f3f;using namespace std;
int m;
int ans[N];
void solve()
{cin>>m;vector<int>a[m];map<int,int>cnt;for(int i=0;i<m;i++){int n;cin>>n;for(int j=1;j<=n;j++){int x;cin>>x;a[i].push_back(x);cnt[x]++;}}for(int i=0;i<m;i++) ans[i]=-1;for(int i=0;i<m;i++){for(auto j:a[i]){cnt[j]--;if(cnt[j]==0) ans[i]=j;}}for(int i=0;i<m;i++)if(ans[i]==-1){cout<<-1<<'\n';return ;}for(int i=0;i<m;i++)cout<<ans[i]<<" \n"[i==m-1];
}
signed main()
{//freopen("input.txt","r",stdin);//freopen("output.txt","w",stdout);ios;int _t=1;cin>>_t;while(_t--) solve();system("pause");return 0;
}

C

Candy Store

题意:有n种糖果,每种糖果的数量和单价分别是a[i]和b[i]。现在将他们打包,每包只能是同一种类的糖果,且每种糖果不能有剩余。现在给每种包标价,连续相同价格的包裹可以使用同一个标签,问最少需要多少个标签。

思路:若 连续若干糖果[l,r]可以合并成一个标签x,那么每一个包裹的数量d[i]=x/b[i]都是整数,所以对于i∈[l,r],都有 b[i] | x,即 lcm(b[l],...b[r]) | x.其次每一种糖果包裹的个数一定也是整数,即d[i] | a[i],每一种糖果包裹的个数也就是(a[i]*b[i])/x,所以对于i∈[l,r],都有 x | a[i]*b[i],即 x | gcd(a[l]b[l] ,...a[l]b[r]).综上,lcm(b[l],...b[r]) | gcd(a[l]b[l] ,...a[l]b[r])

#include <bits/stdc++.h>
#define ios ios::sync_with_stdio(0),cin.tie(0)
#define PII pair<int,int>
typedef long long ll;
const int N=1e6+10;
const int inf=0x3f3f3f3f;using namespace std;
ll n;
ll a[N],b[N];
void solve()
{cin>>n;for(int i=1;i<=n;i++) cin>>a[i]>>b[i];ll g=a[1]*b[1];ll l=b[1];ll ans=1;for(int i=2;i<=n;i++){g=gcd(g,a[i]*b[i]);l=lcm(l,b[i]);if(g%l!=0) {ans++;g=a[i]*b[i];l=b[i];}}cout<<ans<<'\n';
}
signed main()
{//freopen("input.txt","r",stdin);//freopen("output.txt","w",stdout);ios;int _t=1;cin>>_t;while(_t--) solve();system("pause");return 0;
}

 D

Shocking Arrangement

题意:给定序列a,满足序列a的和为0.重排序a,满足

思路: 全0是无解的。我们可以把正负数分到两个集合中,如果当前和为正那么就填负数,和为负就填正数。每次都填绝对值最大的数。

这样做所有的前缀和无论正负都不会超过正数和负数的最大值,而所有的子段和都是两个前缀和的差。

#include <bits/stdc++.h>
#define ios ios::sync_with_stdio(0),cin.tie(0)
#define PII pair<int,int>
#define int long long
typedef long long ll;
const int N=1e6+10;
const int inf=0x3f3f3f3f;using namespace std;
int n;
void solve()
{vector<int>v[2];cin>>n;for(int i=1;i<=n;i++){int x;cin>>x;if(x>=0) v[0].push_back(x);else v[1].push_back(x);}if(v[1].size()==0){cout<<"No\n";return ;}sort(v[0].begin(),v[0].end());sort(v[1].begin(),v[1].end(),greater<int>());vector<int>ans;int sum=0;for(int i=0;i<n;i++){if(sum>=0&&v[1].size()){ans.push_back(v[1].back());v[1].pop_back();}else{ans.push_back(v[0].back());v[0].pop_back();}sum+=ans.back();}cout<<"Yes\n";for(int i=0;i<n;i++)cout<<ans[i]<<" \n"[i==n-1];
}
signed main()
{//freopen("input.txt","r",stdin);//freopen("output.txt","w",stdout);//ios;int _t=1;cin>>_t;while(_t--) solve();system("pause");return 0;
}

http://www.ppmy.cn/news/74060.html

相关文章

java设计模式之过滤器设计模式的前世今生

过滤器设计模式是什么&#xff1f; 过滤器设计模式&#xff08;Filter Design Pattern&#xff09;是一种结构设计模式&#xff0c;它将一组对象或数据根据一定的条件进行筛选过滤。过滤器模式可以通过链式过滤器来逐步筛选出符合条件的对象或数据。 过滤器模式通常包括以下组…

MQTT入门手册

初识MQTT MQTT 协议简介 概览 MQTT 是一种基于发布/订阅模式的轻量级消息传输协议&#xff0c;专门针对低带宽和不稳定网络环境的物联网应用而设计&#xff0c;可以用极少的代码为联网设备提供实时可靠的消息服务。MQTT 协议广泛应用于物联网、移动互联网、智能硬件、车联网…

ubuntu1804替换系统的cups后,启动cups时报错 undefined symbol:_cupsMessageSave。。。

开发环境&#xff1a; Ubuntu18.04 cups-2.2.7 最终要将cups-2.2.7替换为cups-.2.3.3 好&#xff0c;在编译完cups后&#xff0c;对系统的cups进行替换&#xff0c;&#xff0c;此操作已完成。。。。 接下来&#xff0c;启动cups&#xff0c;发现启动失败。。 紧接着执行 jo…

DNS的正反向解析

1.关闭防火墙&Selinux systemctl stop firewalld systemctl disable firewalld setenforce 0 getenforce 2.安装DNS服务器软件 yum install bind-chroot /etc/named.conf /etc/named.rfc1912.zones /var/named 3.修改主配置文件 yum install bind-chroot…

快速入门Springboot整合Datagpa操作数据库

简介SpringDatagpa Spring Data JPA是Spring Data家族的一部分&#xff0c;可以轻松实现基于JPA的存储库。 . JPA是ORM规范&#xff0c;Hibernate是JPA规范的具体实现&#xff0c;这样的好处是开发者可以面向JPA规范进行持久层的开发&#xff0c;而底层的实现则是可以切换的。S…

似然(likelihood)、极大似然、对数似然、最大后验等

1 似然 设总体X服从分布P(x&#xff1b;θ)&#xff08;当X是连续型随机变量时为概率密度&#xff0c;当X为离散型随机变量时为概率分布&#xff09;&#xff0c;θ为待估参数&#xff08;或者说系统参数&#xff09;&#xff0c;X1,X2,…Xn是来自于总体X的样本&#xff0c;x1…

eigen3使用cmake配置

1&#xff0c;首先找到Eigen include的路径&#xff0c;/usr/include/eigen3 可以看到文件夹下有3个文件夹&#xff0c;其中Eigen文件夹包含的是一些简单的矩阵操作&#xff1b;unsupported文件夹下包含一些非线性最小二乘梯度下降lm等复杂算法&#xff1b; 2&#xff0c;使用…

2023互联网Java面试真题1000道(附答案)

前言 2023 跳槽不迷茫&#xff0c;大家可以先收藏再看&#xff0c;后续跳槽都能用上的&#xff01; Java程序员绝大部分工作的时间都是增删改查&#xff0c;很多人觉得这项工作没什么技术含量&#xff0c;任何一件事情都要站在不同的角度去考虑&#xff0c;对于大部分的java程序…