首页 > 其他分享 >Codeforces Round 862 (Div. 2) (4.2)

Codeforces Round 862 (Div. 2) (4.2)

时间:2023-04-03 21:33:59浏览次数:59  
标签:typedef const 4.2 int double 862 cin long Div

Codeforces Round 862 (Div. 2)

A - We Need the Zero

思路:某个数被异或两次相当于没变,即判断n的奇偶性;n为偶数时判断所有数异或后的数是否为0,若为0,输出任意数;n为奇数时答案为所有数异或后的值

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>PII;
const int N=5e3+5,M=1e3+5,INF=0x3f3f3f3f,Mod=1e6;

const double eps=1e-8;
typedef long long ll;
int t,n,x;
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>t;
    while(t--){
        cin>>n;
        int ans=0;
        for(int i=0;i<n;++i){
            cin>>x;
            ans^=x;
        }
        if(n%2)cout<<ans<<'\n';
        else{
            if(ans==0)cout<<0<<'\n';
            else cout<<"-1\n";
        }
    }
    return 0;
}
View Code

 

B - The String Has a Target

思路:对1~n-1中的最后一个大于等于s[0]的s[i]进行操作

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>PII;
const int N=5e3+5,M=1e3+5,INF=0x3f3f3f3f,Mod=1e6;

const double eps=1e-8;
typedef long long ll;
int t,n;
string s;
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>t;
    while(t--){
        cin>>n>>s;
        char mi=s[0];
        int p=0;
        for(int i=s.size()-1;i>0;--i){
            if(s[i]<mi||(s[i]==mi&&p==0)){p=i,mi=s[i];}
        }
        cout<<s[p];
        for(int i=0;i<s.size();++i)
            if(i!=p)cout<<s[i];
        cout<<'\n';
    }
    return 0;
}
View Code

 

C - Place for a Selfie

思路:判断ax2+(b-k)x+c=0是否有解,即(b-k)2-4ac<0,将所有k排列,二分出距离b最近的k,看不等式是否成立

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>PII;
const int N=1e5+5,M=1e3+5,INF=0x3f3f3f3f,Mod=1e6;

const double eps=1e-8;
typedef long long ll;
int t,n,m;
double k[N];
struct E{
    double a,b,c;
}g[N];
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>t;
    while(t--){
        cin>>n>>m;
        for(int i=0;i<n;++i)cin>>k[i];
        sort(k,k+n);
        for(int i=0;i<m;++i){
            bool ok=false;
            cin>>g[i].a>>g[i].b>>g[i].c;
            double b=g[i].b,a=g[i].a,c=g[i].c;
            int p= upper_bound(k,k+n,b)-k;
            if(p!=0){
                double s=b-2*sqrt(a*c);
                if(k[p-1]>s){
                    cout<<"YES\n";
                    cout<<(int)k[p-1]<<'\n';
                    ok=true;
                }
            }
            if(!ok&&p<n){
                double s=b+2*sqrt(a*c);
                if(k[p]<s){
                    cout<<"YES\n";
                    cout<<(int)k[p]<<'\n';
                    ok=true;
                }
            }
            if(!ok)cout<<"NO\n";
        }
    }
    return 0;
}
View Code

 

D - A Wide, Wide Graph

思路:找出直径的两端点,从两端点bfs求每个点到端点的最大距离;对于每个k,若点到端点的距离大于等于k就可以连通,求出Gk的所有连通块

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>PII;
const int N=1e5+5,M=1e3+5,INF=0x3f3f3f3f,Mod=1e6;

const double eps=1e-8;
typedef long long ll;
int t,n,m;
double k[N];
struct E{
    double a,b,c;
}g[N];
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>t;
    while(t--){
        cin>>n>>m;
        for(int i=0;i<n;++i)cin>>k[i];
        sort(k,k+n);
        for(int i=0;i<m;++i){
            bool ok=false;
            cin>>g[i].a>>g[i].b>>g[i].c;
            double b=g[i].b,a=g[i].a,c=g[i].c;
            int p= upper_bound(k,k+n,b)-k;
            if(p!=0){
                double s=b-2*sqrt(a*c);
                if(k[p-1]>s){
                    cout<<"YES\n";
                    cout<<(int)k[p-1]<<'\n';
                    ok=true;
                }
            }
            if(!ok&&p<n){
                double s=b+2*sqrt(a*c);
                if(k[p]<s){
                    cout<<"YES\n";
                    cout<<(int)k[p]<<'\n';
                    ok=true;
                }
            }
            if(!ok)cout<<"NO\n";
        }
    }
    return 0;
}
View Code

 

标签:typedef,const,4.2,int,double,862,cin,long,Div
From: https://www.cnblogs.com/bible-/p/17284526.html

相关文章

  • Codeforces Round 862 (Div. 2)A-C思路复盘
    感觉这场前三题都简单,复盘一下赛时的脑回路QAQ,c二分wa了四发赛后才过的血亏A题意:问是否能找到一个数x,有\(b_i=a_i⊕x\),使得\(b\)数组的总异或和为0。思路:赛时模拟样例可以发现先把a数组的总异或和求出来假设为x,然后由异或性质可知相同为0,不同为1,可知这个x可能就是答案。然......
  • css 设置 div等于屏幕的时候直角,小于屏幕圆角
    .card{border-radius:clamp(0px,((100vw-4px)-100%)*9999,8px);}clamp()clamp()函数的作用是把一个值限制在一个上限和下限之间,当这个值超过最小值和最大值的范围时,在最小值和最大值之间选择一个值使用。它接收三个参数:最小值、首选值、最大值。......
  • 展会倒计时,4.25日QME青岛国际机床展,台湾高技精彩继续!
    2023年4月25-28日,已进入倒计时21天,QME青岛国际机床展在将青岛世界博览城隆重举行,台湾高技在受邀行列当中!本届以6万平方米超大规模,700+全球供应商数量,预计达到6万观众数量。聚焦青岛制造业发展,集结全国乃至国际机床设备新技术与装备,共同打造行业专业交流、一站式装备集中采购交易......
  • xcode4.2中使用xib来运行hello world (MainWindow.xib)
    xcode4.2推荐使用storyboard,但网上资料太少,书上讲的也都是基于xib的 花了2天时间,终于把xib的helloWorld写出来了。 注意,类名一定要大写,为了这个东西,我搞了2天,在配viewContorller时一直抛错。 新建EmptyApplication 添加一个object,添加一个ViewController,添加一个window,把Fi......
  • 加载更多 - 监听div的滚动scroll
    前言:某些情况下,在展示列表数据时,为了实现性能优化及用户更好的体验,可以先展示十几条数据,然后边滑动边加载更多,可以减少服务器压力及页面渲染时间。varpageNum=1;//页数vardomHeight=$(".listBox").height()*4;vardom=document.getElementById('list');dom.addEventList......
  • 展会倒计时,4.25日QME青岛国际机床展,台湾高技精彩继续!
    2023年4月25-28日,已进入倒计时21天,QME青岛国际机床展在将青岛世界博览城隆重举行,台湾高技在受邀行列当中!本届以6万平方米超大规模,700+全球供应商数量,预计达到6万观众数量。聚焦青岛制造业发展,集结全国乃至国际机床设备新技术与装备,共同打造行业专业交流、一站式装备集中采购交易......
  • 上周热点回顾(3.27-4.2)
    热点随笔:· 微软NewBingAI申请与使用保姆级教程(免魔法) (彭旭锐)· 【故障公告】下班前的一场暴风雨,爬虫爬至园宕机 (博客园团队)· 我试图通过这篇文章,教会你一种阅读源码的方式。 (why技术)· 亿万级分库分表后如何进行跨表分页查询 (Ron.Liang)· ChatGPT与码农的......
  • 分治(Divide and Conquer)算法之归并排序
    顾名思义,分治问题由“分”(divide)和“治”(conquer)两部分组成,通过把原问题分为子问题,再将子问题进行处理合并,从而实现对原问题的求解。我们在排序章节展示的归并排序就是典型的分治问题,其中“分”即为把大数组平均分成两个小数组,通过递归实现,最终我们会得到多个长度为1的子数组;“......
  • day33(2023.4.2)
    1.UDP传递基本数据类型(创建服务端)2.UDP传递基本数据类型(创建客户端) 运行结果: 3.UDP传递自定义对象类型   运行结果: 4.反射小概念 5.创建一个Users类  通过getClass()方法  运行结果: 6.通过.class静态属性获取Class对象和通过Class类中......
  • 2023.4.2
    #include<stdio.h>#include<string.h>////intAdd(intx,inty)//{// intz=0;// z=x+y;// returnz;//}//intmain()//{// inta=20;// intb=5;// intsum=Add(a,b);// printf("%d\n",sum);// return0;//}//intmai......