【队伍训练3】Codeforces Round #661 (Div. 3)
时间:2022-07-24
本文章向大家介绍【队伍训练3】Codeforces Round #661 (Div. 3),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
A 签到
#include<bits/stdc++.h>
#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
int a[105];
int main(){
ios
int n,t;
cin>>t;
while(t--){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
bool flag=1;
for(int i=1;i<n;i++){
if(a[i+1]-a[i]>1){
flag=0;
break;
}
}
if(flag){
cout<<"YES"<<endl;
}else{
cout<<"NO"<<endl;
}
}
return 0;
}
B
#include<set>
#include<map>
#include<ctime>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define LL long long
#define rint register int
using namespace std;
const int INF=2e9+5,N=56;
int T,n;
int a[N],b[N];
int mina,minb;
LL ans;
int main()
{
// freopen("1.in","r",stdin);
int i;
scanf("%d",&T);
while(T--) {
mina=minb=INF; ans=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]),mina=min(a[i],mina);
for(i=1;i<=n;i++)
scanf("%d",&b[i]),minb=min(b[i],minb);
for(i=1;i<=n;i++)
ans+=(LL)max(b[i]-minb,a[i]-mina);
printf("%lldn",ans);
}
return 0;
}
C
#include<set>
#include<map>
#include<ctime>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define LL long long
#define rint register int
using namespace std;
const int N=256,INF=1e9;
int T,n;
int w[N],cnt[N];
int main()
{
// freopen("1.in","r",stdin);
int i,j;
int x;
scanf("%d",&T);
int res,ans;
while(T--) {
ans=-INF;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&w[i]);
for(i=2;i<=(n<<1);i++) {
memset(cnt,0,sizeof cnt);
res=0;
for(j=1;j<=n;j++)
cnt[w[j]]++;
for(j=1;i-j>=1;j++) {
if(cnt[j]==0) continue;
if(i-j==j) {
res+=cnt[j]/2;
cnt[j]=cnt[j]%2;
}
else {
x=min(cnt[j],cnt[i-j]);
res+=x;
cnt[j]-=x; cnt[i-j]-=x;
}
}
ans=max(ans,res);
}
printf("%dn",ans);
}
return 0;
}
D
#include<set>
#include<map>
#include<ctime>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define LL long long
#define rint register int
using namespace std;
const int N=2e5+5;
int a[N];
char c[N];
int T,n;
struct DSU
{
int par[N];
int Find(int x)
{
if(x==par[x]) return x;
else return par[x]=Find(par[x]);
}
inline void reset(int n)
{
for(int i=1;i<=n+4;i++)
par[i]=i;
return;
}
}b0,b1;
int d[N];
void draw(int now,int col)
{
if(now>n) return;
d[now]=col;
if(a[now]==0) {
b0.par[now]=b0.Find(now+1);
draw(b1.Find(now),col);
}
else {
b1.par[now]=b1.Find(now+1);
draw(b0.Find(now),col);
}
return;
}
int main()
{
// freopen("1.in","r",stdin);
int i;
int ans;
scanf("%d",&T);
while(T--) {
ans=0;
scanf("%d",&n);
fill(d,d+n+2,0);
scanf("%s",c+1);
for(i=1;i<=n;i++)
a[i]=c[i]-'0';
b0.reset(n); b1.reset(n);
for(i=n;i>=1;i--) {
if(a[i]==1) b1.par[i]=i,b0.par[i]=b0.par[i+1];
else b1.par[i]=b1.par[i+1],b0.par[i]=i;
}
for(i=1;i<=n;i++) {
if(d[i]>0) continue;
d[i]=++ans;
draw(i,ans);
}
printf("%dn",ans);
for(i=1;i<=n;i++)
printf("%d ",d[i]);
printf("n");
}
return 0;
}
E1
#include<set>
#include<map>
#include<ctime>
#include<queue>
#include<stack>
#include<vector>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define LL long long
#define rint register int
using namespace std;
const int N=2e5+5;
int one[N];
int ver[N],Next[N],idx;
LL edge[N];
inline void AddEdge(int a,int b,LL c)
{
Next[++idx]=one[a];
one[a]=idx;
ver[idx]=b;
edge[idx]=c;
return;
}
//==================================
LL sum[N];
int T,n;
LL S;
LL ss,ans;
priority_queue< pair<LL,int> > q;
void dfs(int x,int fa)
{
sum[x]=0;
int i;
for(i=one[x];i>0;i=Next[i]) {
if(ver[i]!=fa)
dfs(ver[i],x),sum[x]+=sum[ver[i]];
}
for(i=one[x];i>0;i=Next[i]) {
if(ver[i]==fa) continue;
q.push(make_pair(sum[ver[i]]*(edge[i]-edge[i]/2),i));
ss+=sum[ver[i]]*edge[i];
}
if(ver[one[x]]==fa&&Next[one[x]]==0)
sum[x]=1;
return;
}
int main()
{
// freopen("1.in","r",stdin);
int i;
int x,y;
LL z;
scanf("%d",&T);
while(T--) {
while(q.size()) q.pop();
ss=0; ans=0;
scanf("%d%lld",&n,&S);
idx=0;
fill(one,one+n+2,0);
fill(ver,ver+2*n+2,0);
fill(Next,Next+2*n+2,0);
fill(edge,edge+2*n+2,0);
for(i=1;i<=n-1;i++) {
scanf("%d%d%lld",&x,&y,&z);
AddEdge(x,y,z);
AddEdge(y,x,z);
}
dfs(1,0);
while(ss>S) {
x=q.top().second; z=q.top().first;
q.pop(); ans++;
ss-=z;
edge[x]=edge[x]/2;
q.push(make_pair(sum[ver[x]]*(edge[x]-edge[x]/2),x));
}
printf("%lldn",ans);
}
return 0;
}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 超详细,Windows系统搭建Flink官方练习环境
- MySQL 覆盖索引与延迟关联
- Java面试题总结之数据结构、算法和计算机基础(刘小牛和丝音的爱情故事1)
- 在Java中什么时候才要考虑线程安全
- android功耗优化(2)--对齐唤醒
- Android 功耗(3)---高通功耗问题分析方法
- 搞定Java快速排序
- Android 功耗(4)---MTK平台待机功耗分析流程
- 使用iframe实现在pc端预览移动端页面的效果
- html+css实现彩色渐变滑动条
- 项目实战 01:将唐诗三百首写入 Elasticsearch 会发生什么?
- 装饰器和代理模式的区别,从一碗小米粥谈起
- EasyNVR部署在centos虚拟机上出现无法访问情况,该如何排查?
- RTSP协议网页无插件直播平台EasyNVR视频广场无法搜索纯数字关键词的通道,该如何解决的?
- RTSP协议网页无插件直播平台EasyNVR通道管理搜索纯数字关键词,返回结果为空如何解决?