首页 > 其他分享 >西南民族大学 春季 2023 训练赛 5

西南民族大学 春季 2023 训练赛 5

时间:2023-04-09 21:57:48浏览次数:55  
标签:typedef const int cin 春季 训练赛 long 2023 tie

西南民族大学 春季 2023 训练赛 5

 

 自动编程

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

const double eps=1e-8;
typedef long long ll;
int n;
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n;
    cout<<"print("<<n<<")";
    return 0;
}
View Code

 

太神奇了

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

const double eps=1e-8;
typedef long long ll;
int n,m;
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n>>m;
    cout<<m+n-1;
    return 0;
}
View Code

 

洛希极限

思路:列公式

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

const double eps=1e-8;
typedef long long ll;
double a,c;
int b;
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>a>>b>>c;
    double l=a;
    if(b==0)l*=2.455;
    else l*=1.26;
    cout<<fixed<<setprecision(2)<<l;
    if(c<l)cout<<" T_T";
    else cout<<" ^_^";
    return 0;
}
View Code

 

 吃鱼还是吃肉

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

const double eps=1e-8;
typedef long long ll;
int n,op,h,w;
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n;
    while(n--){
        cin>>op>>h>>w;
        if(op==1){
            if(h>130)cout<<"ni li hai!";
            else if(h==130)cout<<"wan mei!";
            else cout<<"duo chi yu!";
            cout<<' ';
            if(w>27)cout<<"shao chi rou!";
            else if(w==27)cout<<"wan mei!";
            else cout<<"duo chi rou!";
            cout<<'\n';
        }
        else{
            if(h>129)cout<<"ni li hai!";
            else if(h==129)cout<<"wan mei!";
            else cout<<"duo chi yu!";
            cout<<' ';
            if(w>25)cout<<"shao chi rou!";
            else if(w==25)cout<<"wan mei!";
            else cout<<"duo chi rou!";
            cout<<'\n';
        }
    }
    return 0;
}
View Code

 

不变初心数

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

const double eps=1e-8;
typedef long long ll;
int n,m;
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n;
    while(n--){
        cin>>m;
        int s=m,x=0;
        bool ok=true;
        while(s){
            x+=s%10;
            s/=10;
        }
        int y;
        for(int i=2;i<=9;++i){
            s=m*i;
            y=0;
            while(s){
                y+=s%10;
                s/=10;
            }
            if(y!=x){
                ok=false;
                break;
            }
        }
        if(ok)cout<<x<<'\n';
        else cout<<"NO\n";
    }
    return 0;
}
View Code

 

字母串

思路:注意大小写和边界

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

const double eps=1e-8;
typedef long long ll;
int n;
string s;
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n;
    while(n--){
        cin>>s;
        bool ok=true;
        for(int i=0;i<s.size()-1;++i){
            if(abs(s[i]-s[i+1])==32||(s[i]<=90&&s[i+1]-s[i]==1&&s[i+1]<=90)||(s[i]>90&&s[i]-s[i+1]==1&&s[i+1]>=97))
                continue;
            ok=false;
        }
        if(ok)cout<<"Y\n";
        else cout<<"N\n";
    }
    return 0;
}
View Code

 

矩阵列平移

思路:从第一行前插入数

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

const double eps=1e-8;
typedef long long ll;
int n,k,x;
vector<int>ve[105];
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n>>k>>x;
    int y;

    for(int i=1;i<=n;++i){
        for(int j=1;j<=n;++j){
            cin>>y;
            ve[j].push_back(y);
        }
    }
    int idx=1;
    for(int i=2;i<=n;i+=2){
        for(int j=1;j<=idx;++j){
            ve[i].insert(ve[i].begin(),x);
        }
        idx++;
        if(idx>k)idx=1;
    }
    for(int i=0;i<n;++i){
        int s=0;
        for(int j=1;j<=n;++j){
            s+=ve[j][i];
        }
        cout<<s;
        if(i!=n-1)cout<<' ';
    }
    return 0;
}
View Code

 

均是素数

思路:线性筛出1e6+1e3内的素数

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

const double eps=1e-8;
typedef long long ll;
bool st[N];
int m,n,primes[N],use[1005],uidx,idx,jie;
void P(){
    st[1]=true;
    for(int i=2;i<=jie;++i){
        if(!st[i]){
            primes[idx++]=i;
            if(i>=m&&i<=n)use[uidx++]=i;
        }
        for(int j=0;primes[j]*i<=jie;++j){
            st[primes[j]*i]=true;
            if(i%primes[j]==0)break;
        }
    }
}
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>m>>n;
    ll res=0;
    jie=n*n+n+5;
    P();
    for(int i=0;i<uidx;++i){
        for(int j=i+1;j<uidx;++j){
            for(int k=j+1;k<uidx;++k){
                int p=use[i],q=use[j],r=use[k];
                if(!st[p*q+r]&&!st[q*r+p]&&!st[r*p+q])res++;
            }
        }
    }
    cout<<res;
    return 0;
}
View Code

 

盲盒包装流水线

思路:坐标对号

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

const double eps=1e-8;
typedef long long ll;
int a[N],n,s,b[N];
bool st[N];
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n>>s;
    int x;
    for(int i=1;i<=n;++i){
        cin>>x;
        st[x]=true;
        a[x]=i;
    }
    int t=0;
    for(int i=1;i<=n/s;++i){
        for(int j=1;j<=s;++j){
            cin>>x;
            b[t*s+s-j+1]=x;
        }
        t++;
    }
    int k;
    cin>>k;
    while(k--){
        cin>>x;
        if(!st[x])cout<<"Wrong Number\n";
        else{
            cout<<b[a[x]]<<'\n';
        }
    }
    return 0;
}
View Code

 

 点赞狂魔

思路:求每个人的标签种类及平均值,比较一下

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

const double eps=1e-8;
typedef long long ll;
int n,k;
struct E{
    string na;
    int sum;
    double aver;
}g[105];
unordered_map<int,int>mp;
bool cmp(E a,E b){
    if(a.sum!=b.sum)return a.sum>b.sum;
    return a.aver<b.aver;
}
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n;
    for(int i=0;i<n;++i){
        cin>>g[i].na;
        cin>>k;
        mp.clear();
        int x,ma=0;
        for(int j=0;j<k;++j){
            cin>>x;
            mp[x]++;
            ma=max(ma,mp[x]);
        }
        g[i].sum=mp.size();
        g[i].aver=k*1.0/mp.size();
    }
    sort(g,g+n,cmp);
    for(int i=0;i<3&&i<n;++i){
        cout<<g[i].na;
        if(i<2&&i<n-1)cout<<' ';
    }
    if(n<3){
        for(int i=1;i<=3-n;++i)
        cout<<" -";
    }
    return 0;
}
View Code

 

浪漫侧影

思路:后中序求出树,从根节点遍历树,L先遍历左子树再右子树,R先遍历右子树再左子树

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

const double eps=1e-8;
typedef long long ll;
int n,post[25],in[25];
typedef struct TreeNode{
    int date;
    TreeNode *left,*right;
}*Tree;
Tree postandin(int pl,int pr,int il,int ir){
    Tree root = new struct TreeNode;
    root->date = post[pr];
    root->left=root->right=NULL;
    int p = il;
    while (in[p] != post[pr])p++;
    int num = p - il;
    if (p != il)root->left = postandin(pl, pl + num - 1, il, p - 1);
    if (p != ir)root->right = postandin(pl + num, pr - 1, p + 1, ir);
    return root;
}
int L[25],R[25],idx;
void LL(Tree root,int p){
    if(p==idx)L[idx++]=root->date;
    if(root->left)LL(root->left,p+1);
    if(root->right)LL(root->right,p+1);
}
void RR(Tree root,int p){
    if(p==idx)R[idx++]=root->date;
    if(root->right)RR(root->right,p+1);
    if(root->left)RR(root->left,p+1);
}

int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n;
    for(int i=0;i<n;++i)cin>>in[i];
    for(int i=0;i<n;++i)cin>>post[i];
    Tree tree=postandin(0,n-1,0,n-1);
    RR(tree,0);
    cout<<"R: ";
    for(int i=0;i<idx;++i){
        cout<<R[i];
        if(i!=idx-1)cout<<' ';
    }
    idx=0;
    LL(tree,0);cout<<"\n";
    cout<<"L: ";
    for(int i=0;i<idx;++i){
        cout<<L[i];
        if(i!=idx-1)cout<<' ';
    }
    return 0;
}
View Code

 

 哲哲打游戏

思路:模拟下三种情况

#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;
vector<int>ve[N];
int a[105],n,m;
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n>>m;
    for(int i=0;i<n;++i){
        int k,x;
        cin>>k;
        ve[i+1].push_back(i+1);
        while(k--){
            cin>>x;
            ve[i+1].push_back(x);
        }
    }
    int op,p,st=1;
    vector<int>ans;
    for(int i=0;i<m;++i){
        cin>>op>>p;
        if(op==0){
            st=ve[st][p];
        }
        else if(op==1){
            a[p]=st;
            ans.push_back(st);
        }
        else{
            st=a[p];
        }
    }
    for(auto x:ans)cout<<x<<'\n';
    cout<<st;
    return 0;
}
View Code

 

直捣黄龙

思路:1.dijkstra,求最短路过程中维护其他属性  2.dijkstra+dfs,求出最短路径,dfs求最佳的路径

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

const double eps=1e-8;
typedef long long ll;
string st,en;
bool vis[N];
int n,k,w[N],path[N],num[N],cnt[N],ki[N],dis[N];
unordered_map<string,int>si;
unordered_map<int,string>is;
vector<PII>ve[N];
void dij(){
    memset(dis,0x3f,sizeof dis);
    priority_queue<PII,vector<PII>,greater<PII> >q;
    dis[0]=0, path[0]=-1, num[0]=1, cnt[0]=1, ki[0]=0;
    q.push({dis[0],0});
    while(q.size()){
        auto t=q.top();q.pop();
        int u=t.second;
        if(vis[u])continue;
        vis[u]=true;
        for(auto x:ve[u]){
            int v=x.first,ww=x.second;
            if(vis[v])continue;
            if(dis[v]>dis[u]+ww){
                dis[v]=dis[u]+ww;
                path[v]=u;
                num[v]=num[u];
                cnt[v]=cnt[u]+1;
                ki[v]= ki[u] + w[v];
                q.push({dis[v],v});
            }
            else if(dis[v]==dis[u]+ww){
                num[v]+=num[u];
                if(cnt[v]<cnt[u]+1){
                    cnt[v]=cnt[u]+1;
                    path[v]=u;
                    ki[v]= ki[u] + w[v];
                }
                else if(cnt[v]==cnt[u]+1){
                    if(ki[v] < ki[u] + w[v]){
                        ki[v]= ki[u] + w[v];
                        path[v]=u;
                    }
                }
            }
        }
    }
    stack<int>sk;
    int t=si[en];
    while(t!=-1){
        sk.push(t);
        t=path[t];
    }
    while(sk.size()){
        cout<<is[sk.top()];
        sk.pop();
        if(sk.size())cout<<"->";
    }
    cout<<"\n";
    t=si[en];
    cout << num[t] << ' ' << dis[t] << ' ' << ki[t];
}

int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);

    cin>>n>>k>>st>>en;
    si[st]=0;
    is[0]=st;
    string s,ss;
    int x;
    for(int i=1;i<n;++i){
        cin>>s>>w[i];
        si[s]=i;
        is[i]=s;
    }
    for(int i=0;i<k;++i){
        cin>>s>>ss>>x;
        int a=si[s],b=si[ss];
        ve[a].push_back({b,x});
        ve[b].push_back({a,x});
    }
    dij();
    return 0;
}
View Code 1
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>PII;
const int N=2e2+5,M=1e3+5,INF=0x3f3f3f3f,Mod=1e6;

const double eps=1e-8;
typedef long long ll;
string st,en;
bool vis[N];
int n,k,w[N],dis[N],sum,ren;
unordered_map<string,int>si;
unordered_map<int,string>is;
vector<PII>ve[N];
vector<string>path;
void dfs(int x,int d,int rens,vector<string>tp){
    if(is[x]==en&&d==dis[si[en]]){
        sum++;
        if(path.size()<tp.size()){
            path=tp;
            ren=rens;
        }
        else if(path.size()==tp.size()){
            if(ren<rens){
                ren=rens;
                path=tp;
            }
        }
        return ;
    }
    for(auto u:ve[x]){
        if(!vis[u.first]&&d+u.second<=dis[si[en]]){
            tp.push_back(is[u.first]);
            vis[u.first]=true;
            dfs(u.first,d+u.second,rens+w[u.first],tp);
            vis[u.first]=false;
            tp.pop_back();
        }
    }
}
void dij(){
    memset(dis,0x3f,sizeof dis);
    priority_queue<PII,vector<PII>,greater<PII> >q;
    dis[0]=0;
    q.push({dis[0],0});
    while(q.size()){
        auto t=q.top();q.pop();
        int u=t.second;
        if(vis[u])continue;
        vis[u]=true;
        for(auto x:ve[u]){
            if(!vis[x.first]){
                if(dis[x.first]>dis[u]+x.second){
                    dis[x.first]=dis[u]+x.second;
                    q.push({dis[x.first],x.first});
                }
            }
        }
    }

}

int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);

    cin>>n>>k>>st>>en;
    si[st]=0;
    is[0]=st;
    string s,ss;
    int x;
    for(int i=1;i<n;++i){
        cin>>s>>w[i];
        si[s]=i;
        is[i]=s;
    }
    for(int i=0;i<k;++i){
        cin>>s>>ss>>x;
        int a=si[s],b=si[ss];
        ve[a].push_back({b,x});
        ve[b].push_back({a,x});
    }
    dij();
    path.push_back(st);
    memset(vis,false,sizeof vis);
    dfs(0,0,0,path);
    for(int i=0;i<path.size();++i){
        cout<<path[i];
        if(i!=path.size()-1)cout<<"->";
        else cout<<"\n";
    }
    cout<<sum<<' '<<dis[si[en]]<<' '<<ren;
    return 0;
}
View Code 2

 

拼题A打卡奖励

思路:dp求金币数需要的最少时间

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

const double eps=1e-8;
typedef long long ll;
int n,m,f[M],w[N],v[N];
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    cin>>n>>m;
    int s=0;
    for(int i=1;i<=n;++i)cin>>v[i];
    for(int i=1;i<=n;++i){
        cin>>w[i];
        s+=w[i];
    }
    memset(f,0x3f,sizeof f);
    f[0]=0;
    for(int i=1;i<=n;++i)
        for(int j=s;j>=w[i];--j){
            f[j]=min(f[j],f[j-w[i]]+v[i]);
        }
    for(int i=s;i>=0;--i)
        if(f[i]<=m){
            cout<<i;
            break;
        }
    return 0;
}
View Code

 

标签:typedef,const,int,cin,春季,训练赛,long,2023,tie
From: https://www.cnblogs.com/bible-/p/17301032.html

相关文章

  • 2023.4.9每日总结
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"&g......
  • 每日总结2023-04-09
    今天完成了密码找回界面代码:<?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools=&qu......
  • 2023第14届蓝桥杯C/C++A组参赛记录+部分题解
    比赛记录早上起得还算早,没吃早餐,我吃早餐会瞌睡,也会变蠢。在门口还没来得及和队里其他同学聊几句就进场了......键盘还是一样的难用,软件有codeblocks和dev,很舒服。今年来参加蓝桥杯的人好多啊......女生也好多。听说今年蓝桥杯有统一的正经培训,不过和我这个被踢出蓝桥杯群的......
  • 【 2023 】近期一些编译调试开发 Android7&9 系统的笔记( h616 / imx8m / rk3399 )
    主要就记录一下自己食用过程中遇到的一些问题吧,板子有新有旧,但都差不多。待整理呢。https://stackoverflow.com/questions/67363030/rebuild-android-code-with-error-ssl-error-when-connecting-to-the-jack-server-thttps://note.qidong.name/2017/07/disable-jack-server/......
  • 2023 中国IC设计100 排行榜!
    Top10上市公司Top10EDA/IP公司Top10MCU公司Top10电源管理芯片(PMIC)公司Top10AI芯片公司Top10无线连接(WiFi/BT/NB-IoT/LoRa/UWB)芯片公司Top10处理器(CPU/GPU/FPGA/ASIC)芯片公司Top10模拟芯片公司Top10功率器件公司Top10传感器/MEMS公司Top10存......
  • 【Voyage】GDOI 2023 旅游记 || ECHO.
    \(\color{#FFFFFF}{那是什么样的旅途呢}\)\(\color{#FFFFFF}{真的会害怕很多东西呢。想想害怕的其实不止这样一件事,便产生了“其实都一样没关系的,都应该踏过去的”这样的想法}\)\(\color{#FFFFFF}{——3月29日}\)注:这个真的是旅游记。作个人纪念。会配上一些图片完整相册等......
  • 2023年4月9日
    执行学习复习数据库相关部分,数据库设计是重点要讲清楚你这个系统,功能模块功能模块有一条他说,新增的用户除了删除其他的权限都有,这里找见,搞明白,修改一下,修改成可以定义的,就是选择了什么角色,他只能干什么,比如项目经理,他只可以创建项目,没有权限创建接口GPT一个项目中如何确......
  • JavaWeb-24课-filter-2023-04-09
    Servlet类,没有乱码处理packagecom.feijian.servlet;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;public......
  • “科大国创杯”2023 年安徽省青少年信息学科普日活动 简要题解
    老年退役选手感受单调队列力量。初中组没有实现,如果有问题欢迎爆d我。小学组T1grade直接累加即可。不需要按百分比算(也就是别/100),那样可能会出现一些浮点数误差。T2order暴力枚举$t$就可以了T3string答案即为$cnt4+cnt5-cnt20$。注意到对于一个数,我们只关心其个位和十位......
  • element-ui按需使用-2023年
    element-ui按需引入报错Error:Cannotfindmodule‘babel-preset-es2015‘版本需要更新了下载babelnpmi@babel/preset-env-D 因为是使用es6编译,所以在babel.config.js中写成module.exports={presets:['@vue/cli-plugin-babel/preset',["@babel/preset-e......