首页 > 其他分享 >Acwing.第132场周赛

Acwing.第132场周赛

时间:2023-12-02 20:44:19浏览次数:35  
标签:周赛 cout int long 132 505 find Acwing

Acwing.第132场周赛

比赛地址

A.大小写转换

题目

思路:

简单的模拟,可以使用c++大小写转换库函数,但是由于我早上比赛时候没用好就不敢用了
就用了ASCII码转换

代码:

#include<bits/stdc++.h>
using namespace std;
void solve(){
	string s;
	cin>>s;
	
	for(int i=0;i<s.size();i++){
		s[i]=s[i]+32;

		cout<<s[i];
		
	}
}
int main(){
	int t=1;
	while(t--){
		solve();
	}
	return 0;

}

B.不合群数

题目

思路:

题目当中告诉的很详细了,10亿中两个质数之间不会超过300个数,这里我们需要注意下特殊情况,这里我们将特殊情况加在判断素数的过程当中就行,事实上最后不是在判断一个素数,二十在判断一个大于a的不能被[2,n]整除的数字。

代码:

#include<bits/stdc++.h>
using namespace std;
#define int long long
int a,b;
bool prime(int x){
    if(x==1||x==0){
        return false;

    }
    if(x==2){
        return true;
    }
    for(int i=2;i<=x/i;i++){
        if(x%i==0&&i<=a){
            return false;

        }
    }
    return true;
    
}
void solve(){
    
    cin>>a>>b;
    // cout<<a<<" "<<b<<endl;
    
    if(a>=b){
        cout<<-1<<endl;
        return ;
    }
    if(a==2){
        for(int i=b;;i--){
            if(i%2){
                cout<<i<<endl;
                return ;

            }
        }
        cout<<-1<<endl;
        return ;
        
    }
    for(int i=b;i>b-300&&i>a;i--){
        // cout<<i<<endl;
        
        if(prime(i)){
            // // cout<<1<<endl;
            // // return ;
            // cout<<i<<endl;
            // return ;
            cout<<i<<endl;
            return ; 
        }
        // else if(prime(sqrt(i))&&sqrt(i)>a){
        //     cout<<i<<endl;
        //     return ;
            
        // }
    }
    cout<<-1<<endl;
    return ;
    
}
signed main(){
    int t=1;
    while(t--){
        solve();
    }
    return 0;

}

C.最短距离

题目

思路:

这个题实际上是可以用floyd的,因为我们只需要判断每一类之间的最小距离,而不是两点之间的最小距离,简单用一下并查集,就可以解决这个问题,一开始我竟然还在用编号去判断,太天真了哈哈哈,事实上根本不需要

代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,k;
int c[505];
int l[505],r[505];
int f[100005];
int g[505][505];
int a[100005];
int find(int x){
    return f[x]==x?x:f[x]=find(f[x]);
}
void merge(int u,int v){
    f[find(u)]=find(v);
}
signed main(){
    cin>>n>>m>>k;
    for(int i=1;i<=k;i++){
        cin>>c[i];
        l[i]=r[i-1]+1;
        r[i]=r[i-1]+c[i];
        c[i]+=c[i-1];
    }
    for(int i=1;i<=k;i++){
        for(int j=1;j<=k;j++){
            g[i][j]=0x3f3f3f3f3f3f3f3fll;
        }
        g[i][i]=0;
    }
    for(int i=1,j=1;i<=n;i++){
        if(i>c[j]){
            j++;
        }
        a[i]=j;
        f[i]=i;
    }
    while(m--){
        int u,v,w;
        cin>>u>>v>>w;
        if(w==0){
            merge(u,v);
        }
        u=a[u];v=a[v];
        g[v][u]=g[u][v]=min(g[u][v],w);
    }
    //floyd
    for(int t=1;t<=k;t++){
        for(int i=1;i<=k;i++){
            for(int j=1;j<=k;j++){
                g[i][j]=min(g[i][j],g[i][t]+g[t][j]);
            }
        }
    }
    for(int i=1;i<=k;i++){
        for(int j=l[i]+1;j<=r[i];j++){
            if(find(j)!=find(l[i])){
                cout<<"No"<<endl;
                return 0;
            }
        }
    }
    cout<<"Yes"<<endl;
    for(int i=1;i<=k;i++){
        for(int j=1;j<=k;j++){
            int s=g[i][j];
            if(s>0x1f3f3f3f3f3f3f3fll)cout<<-1<<" ";
            else cout<<s<<" ";
        }
        cout<<endl;
    }
    return 0;
}

标签:周赛,cout,int,long,132,505,find,Acwing
From: https://www.cnblogs.com/du463/p/17872199.html

相关文章

  • 2023-2024-1 20231321王曦轶 《计算机基础与程序设计》第十周学习总结
    2023-2024-120231321王曦轶《计算机基础与程序设计》第十周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2023-2024-1计算机基础与程序设计第一周作业)这个作业的目标<计算机科学......
  • 20211325 2023-2024-1 《信息安全系统设计与实现(上)》第十二周学习笔记
    202113252023-2024-1《信息安全系统设计与实现(上)》第十二周学习笔记一、任务要求 自学教材第14章,提交学习笔记(10分),评分标准如下1.知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)“我在学*......
  • 2023-2024-1 20231323《计算机基础与程序设计》第十周学习总结
    2023-2024-120231323《计算机基础与程序设计》第十周学习总结作业信息所属课程2023-2024-1-计算机基础与程序设计作业要求2023-2024-1计算机基础与程序设计第周作业作业目标自学教材《计算机科学概论》第12,13,14章《C语言程序设计》第9章并完成云班课测试作业......
  • 20211326学习笔记12
    第十四章数据库系统一、知识点归纳(一)MySQL简介MySQL(MySQL2018)是一个关系数据库系统(Codd1970)c在关系数据库中,数据存储在表中。每个表由多个行和列组成。表中的数据相互关联。表也可能与其他表有关联。关系结构使得可在表上运行查询来检索信息并修改数据库中的数据。关系......
  • 【AcWing-Linux】03. Shell
    Shell一、Shell简介shell是我们通过命令行与操作系统沟通的语言。shell是一种脚本语言,通过对应的脚本解释器解释执行,一般作为内置于操作系统的应用程序向用户提供访问操作系统内核的服务。shell脚本(shellscript)可以直接在命令行中执行,也可以将一套逻辑组织成一个文件,方便复......
  • P1324 矩形分割
    简单的贪心题。因为要切成\(1\times1\)的小方块,所以这\((n-1)+(m-1)\)条线的每条线都会挨一刀,只需要将顺序确定下来,就有可能计算出总代价。贪心地考虑,对于同一侧来说,代价大的切割要尽早处理,否则一旦在另一个方向上进行了一次切割,这一刀的代价就会增加一倍,代价小的加倍总比......
  • 456. 132模式
    456.132模式2021年3月24日1e4的数据,我\(O(n^2)\)都能给你过了,就不能1e5的数据吗单调栈经典例题(๑•̀ㅂ•́)و√倒着遍历,维护一个递减的单调栈。两个方法:第一个方法记录所有从栈里弹出的所有数的最大值\(maxx\),这个是2栈顶就是3将要进的值\(nums[i]\),如果\(<maxx\)......
  • Acwing第 131 场周赛 之找最值过程中维护某个性质的方案
    https://www.acwing.com/problem/content/5367/题目如果只需要输出最大值,我都没有问题。每次需要输出方案的时候,我似乎都需要先统计最大值,再重新扫描一遍找所有能够取得最大值的方案,然后在这些方案中找到最大值。最好的做法应该是在找最大值的过程中就维护题目要求方案的排序关......
  • Acwing4244牛的比赛
    Acwing4244.牛的比赛题目部分N头奶牛,编号1∼N,一起参加比赛。奶牛的战斗力两两不同。这些奶牛之间已经进行了M轮两两对决。在对决中,战斗力高的奶牛一定会战胜战斗力低的奶牛。请问,通过上述M轮对决的结果,可以确定多少头奶牛的具体战斗力排名。输入格式第一行包含两个整......
  • 2023-2024-120231329《计算机基础与程序设计》第10周学习总结
    作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK10这个作业的目标计算机科学概论第12,13,14章云班课测试《C语言程序设计》第9章并完成云班课测试作......