首页 > 其他分享 >SMU Spring 2023 Trial Contest Round 10

SMU Spring 2023 Trial Contest Round 10

时间:2023-04-25 23:56:29浏览次数:57  
标签:10 typedef const Contest int Spring ll cin long

SMU Spring 2023 Trial Contest Round 10

 A - Remove Duplicates

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

const double eps=1e-6;
typedef long long ll;

int n,a[55],b[1005];
vector<int>ans;
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n;
    for(int i=0;i<n;++i)cin>>a[i];
    for(int i=n-1;i>=0;--i){
        if(b[a[i]]==0)ans.push_back(a[i]);
        b[a[i]]++;
    }
    cout<<ans.size()<<'\n';
    for(int i=ans.size()-1;i>=0;--i)cout<<ans[i]<<' ';
    return 0;
}
View Code

 

B - File Name

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

const double eps=1e-6;
typedef long long ll;

int n,ans;
string s;
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n;
    cin>>s;
    int a=0;
    for(int i=0;i<n;++i){
        if(s[i]=='x'){
            a++;
        }
        else{
            if(a>=3){
                ans+=(a-2);
            }
            a=0;
        }
    }
    if(a>=3)ans+=(a-2);
    cout<<ans;
    return 0;
}
View Code

 

 C - Letters

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

const double eps=1e-6;
typedef long long ll;

ll n,m,a[N];
vector<ll>ve;
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n>>m;
    for(int i=0;i<n;++i){
        cin>>a[i];
        if(i)a[i]+=a[i-1];
    }
    ll x;
    //for(int i=0;i<n;++i)cout<<a[i]<<' ';cout<<'\n';
    for(int i=0;i<m;++i){
        cin>>x;
        int p= lower_bound(a,a+n,x)-a;
        p--;
        if(p>=0){
            x-=a[p];
        }
        cout<<p+2<<' '<<x<<'\n';
    }
    return 0;
}
View Code

 

D - Almost Arithmetic Progression

思路:维护成等差数列,确定a1和d后即可确定等差数列,根据a1和a2确立等差数列的情况有9种,遍历每一种求最小值,若每种都不成立则无

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

const double eps=1e-6;
typedef long long ll;

ll n,a[N],b[3]={-1,0,1},ans=-1;
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n;
    for(int i=1;i<=n;++i)cin>>a[i];
    if(n<=2)cout<<0;
    else{
        ll res;
        for(int i=0;i<3;++i){
            for(int j=0;j<3;++j){
                res=0;
                ll aa=a[1]+b[i],bb=a[2]+b[j];
                ll d=bb-aa,a1=aa;
                res+=abs(b[i])+abs(b[j]);
                bool ok=true;
                for(int k=3;k<=n;++k){
                    ll x=a1+(k-1)*d;
                    ll dd=abs(a[k]-x);
                    if(dd>1){
                        ok=false;
                        break;
                    }
                    res+=dd;
                }
                if(ok&&(res<ans||ans==-1))ans=res;
            }
        }
        cout<<ans;
    }

    return 0;
}
View Code

 

E - Bus Video System

思路:x0表示最初人数,由x和y的关系可以得出x0的取值范围为-Si<=x0<=w-Si,Si表示前i个数前缀和,且x0的取值范围为0~w,

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

const double eps=1e-6;
typedef long long ll;

ll n,w,a[N];
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n>>w;
    ll ma,x,s=0,mi;
    for(int i=0;i<n;++i){
        cin>>x;
        s+=x;
        if(i==0)ma=w-s,mi=-s;
        else{
            ma=min(w-s,ma),mi=max(-s,mi);
        }
    }
    if(ma>=mi&&ma>=0&&mi<=w){
        if(mi<0)mi=0;
        if(ma>w)ma=w;
        cout<<ma-mi+1;
    }
    else cout<<0;
    return 0;
}
View Code

 

F - Mentors

思路:存编号和能力,按能力升序排,存下每个编号的徒弟数,对矛盾的处理:能力大的一方徒弟数减一

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

const double eps=1e-6;
typedef long long ll;

int n,k,a[N],b[N];
struct E{
    int id,s;
    bool operator<(const E&e)const {
        if(s==e.s)return id<e.id;
        return s<e.s;
    }
}g[N];
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n>>k;
    for(int i=0;i<n;++i){
        cin>>a[i];
        g[i].id=i,g[i].s=a[i];
    }
    sort(g,g+n);
    for(int i=0;i<n;++i){
        int t=i;
        while(g[i].s==g[i+1].s&&i+1<n){
            b[g[i].id]=t;
            ++i;
        }
        b[g[i].id]=t;
    }
    for(int i=0,x,y;i<k;++i){
        cin>>x>>y;
        if(a[x-1]>a[y-1]){
            b[x-1]--;
        }
        else if(a[x-1]<a[y-1]){
            b[y-1]--;
        }
    }
    for(int i=0;i<n;++i)cout<<b[i]<<' ';
    return 0;
}
View Code

 

G - Petya's Exams

思路:对考试时间排序,每次测试从发布时间开始遍历,找到 准备的时长 天,并且这些天没有其他任务,若找不全则-1

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

const double eps=1e-6;
typedef long long ll;

int n,m,ans[N];
struct E{
    int l,r,c,id;
}g[N];
bool cmp(E a,E b){
    return a.r<b.r;
}
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n>>m;
    for(int i=1;i<=m;++i){
        cin>>g[i].l>>g[i].r>>g[i].c;
        g[i].id=i;
        ans[g[i].r]=m+1;
    }
    sort(g+1,g+m+1,cmp);
    for(int i=1;i<=m;++i){
        int cnt=0;
        for(int j=g[i].l;j<=g[i].r;++j){
            if(!ans[j]){
                ans[j]=g[i].id;
                cnt++;
            }
            if(cnt==g[i].c)break;
        }
        if(cnt!=g[i].c){
            cout<<-1;
            return 0;
        }
    }
    for(int i=1;i<=n;++i)cout<<ans[i]<<' ';
    return 0;
}
View Code

 

标签:10,typedef,const,Contest,int,Spring,ll,cin,long
From: https://www.cnblogs.com/bible-/p/17354350.html

相关文章

  • SpringBoot 第一个demo
    前奏最近在面试,有一家公司在谈的时候,发了一份后端笔试题给我,是java的......我TMD是个运维诶,你给我一套SRE题不行嘛......玛德现在都这么卷了吗,SRE要去卷java啦...... SpringBoot对于Java的很多东西我并不懂,但是我知道写java的后端都会用到Spring全家桶,包括SpringBoot、Spri......
  • spring mvc3.2 请求及响应过程
    doFilter-->doFilterInternal-->filterChain.doFilter-->HttpServletservice(request,response)-->doGet(req,resp)-->DispatcherServletservice(ServletRequestreq,ServletResponseres)-->FrameworkServlet.processRequest-->doDispatch(request......
  • spring 依赖注入用@Autowired报错 No unique bean of type
    1,报错如下Causedby:org.springframework.beans.factory.NoSuchBeanDefinitionException:Nouniquebeanoftype[org.springframework.amqp.rabbit.core.RabbitTemplate]isdefined:expectedsinglematchingbeanbutfound4:[jmsTemplate1,jmsTemplate2,jmsTemplate3......
  • SpringBoot项目使用Junit进行单元测试
    SpringBoot项目使用Junit进行单元测试环境:Springboot2.6.7POM.xml文件添加如下内容:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><dependency>&l......
  • 铠侠 RC10 固态硬盘寿命暴力写入测试:1100pe 毫发无损
    一直很好奇固态硬盘的寿命有多久,从来也没有用坏过。怀着强烈的好奇心,开始了这一马拉松测试。直接对固态做暴力写入,一直到写坏为止看看到底写入量多少。从五月份到现在,断断续续写入。现在已经写入1100tb,还没有任何坏的迹象(保修是肯定没有了)。目前缓外写入400-500m/s,与新盘差不多没有......
  • PTA1004 成绩排名(C++)
    一、问题描述:读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含1个测试用例,格式为第1行:正整数n第2行:第1个学生的姓名学号成绩第3行:第2个学生的姓名学号成绩.........第n+1行:第n个学生的......
  • springboot自动装配大概原理
    自动装配:pom.xmlspring-boot-dependence:核心都依赖在父类工程中!我们在写入或者引入springboot依赖的时候,不需要指定版,因为有这些仓库的版本启动器:------springboot的启动场景比如spring-boot-starter-web,他就会帮我们导入web环境苏需要的依赖。springboot会将所有的功能......
  • 不得不用ChatGPT的100个理由……
    最近无论在哪,很多人都在吹ChatGPT无所不能,动不动就是AI要颠覆人类,很多人害怕有一天AI会取代自己,我认为明显是多虑了……当然,也有很多小白试用了ChatGPT之后,并没有感觉到他很强大,主要原因是没有开满技能,没有对比就不知道他有多香!!!接下来我尝试着通俗易懂的比一比!!!ChatGPT的......
  • 打卡10
    #include<stdio.h>intmain(){charc='1';//强制类型转换取到的是其字符对应的ASCII值inta=(int)c;printf("%d",a);//取到字符本身的整型值intb=c-48;printf("%d",b);return0;} ......
  • SP10570
    后缀数组做法。用不同的分隔字符将\(n\)个串连接起来,如\(\texttt{abcdefg}\)、\(\texttt{qaq}\)、\(\texttt{qwq}\)拼成\(\texttt{abcdefgAqaqBqwqC}\)。求出新串的后缀数组和height数组,然后二分答案,问题转变为判断是否有一个长度为\(p\)的串在所有的串中出现,判断......