AtCoder Beginner Contest 177 A ~ E

【Atcoder】AtCoder Beginner Contest 174 很久没有打Atcoder了(忙着水群,所以把群解散了),今天中午吃完午饭就和xxqiam打了个VP,结果灰常打脸噢。Q友们有的AK了,有的5题了,而我只能勉强算是个3题。A题水过,B题因<=写成>=WA了一次后来AC,C题卡住了,D题过了(但是过的时候已经超时了10分钟),呜呜~~中间还忙着给xxqiam讲B题(他数据类型用错了,没考虑x*x会超过int的问题,讲D题。E题没看,F题没看。难道这就是我现在的水平么,看来我要加油了!!xxqiam 1题半吧 T1: A - Air Condit. 阅读详情

A - Don’t be late

签到:

#include<iostream>
#include<algorithm>
 
using namespace std;
 
int main(){
	double d,t,s;
	cin>>d>>t>>s;
	double ans = d / s;
	if(ans <= t) cout<<"Yes"<<endl;
	else cout<<"No"<<endl;
	return 0;
} 

B
签到

思路:由于数据范围比较小,所以暴力即可。数据大的话我们可以考虑KMP算法

#include<iostream>
#include<algorithm>
#define inf 0x3f3f3f3f
using namespace std;
 
int main(){
	string s,t;
	cin>>s>>t;
	
	int lens = s.length();
	int lent = t.length();
	int ans = inf;	
	for(int i=0;i+lent <= lens ;i++){
		int res = 0;
		for(int j=0;j<lent;j++){
			if(s[i+j]!=t[j]){
				res++;
			}
		}
		ans = min(ans,res);
	}
    cout<<ans<<"\n";
    
	return 0;
} 

C
思路:数据范围比较大,O(n^n)的复杂度肯定不可以,那么我们要分析式子
假设有一组数据:

4
1 3 4 5

那么原式 =1×3+1×4+1×5+3×4+3×5+4×5=1×3+1×4+1×5+3×4+3×5+4×5

=1×3+1×4+3×4+1×5+3×5+4×5=1×3+1×4+3×4+1×5+3×5+4×5

=1×3+(1+3)×4+(1+3+4)×5=1×3+(1+3)×4+(1+3+4)×5

所以我们可以得到可以对数组从小到大进行排序,然后每次用前i-1的前缀和乘以当前这个数就行了

#include<iostream>
#include<algorithm>
#define maxn 200005
using namespace std;
typedef long long ll;
ll n,a[maxn],s[maxn];
ll ans,res;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	
	sort(a+1,a+1+n);
	ans = 0;
	
	s[1] = a[1];
	for(int i=2;i<=n;i++){
		s[i] = s[i-1] + a[i];
		s[i] %= 1000000007;
	}
	for(int i=2;i<=n;i++){
		ans = (ans+a[i] * s[i-1])%1000000007; 
	}
	cout<<ans<<endl;
	return 0;
}

D

思路:题意很直观,就是让我们求最大分组数。条件是组内所有人不是朋友关系。

思路:并查集板子题。我们可以对数据预处理后然后对其进行分块,然后其中哪块元素最多的那个个数就是最大组数。

#include<iostream>
#include<algorithm>
#define inf 0x3f3f3f3f
using namespace std;
 
int f[200005];
int fa[200005];
int find(int x){
	return x != f[x]?f[x]=find(f[x]):x;
}
 
void join(int x,int y){
	int fx = find(x);
	int fy = find(y);
	if(fx != fy) f[fx] = fy;
}
 
int main(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++) f[i] = i;
	
	for(int i=1;i<=m;i++){
		int aa,bb;
		cin>>aa>>bb;
		join(aa,bb);	
	}
	
    for(int i=1;i<=n;i++) fa[i] = find(f[i]);
	int ans = -inf;
	sort(fa+1,fa+1+n);
	int num = 1;
	for(int i=2;i<=n;i++){
		if(fa[i] == fa[i-1]) ++num;
		else ans = max(ans,num),num=1;
	}
	cout<<max(ans,num)<<endl;
	return 0;
}

E
思路:判断两两互质:分解质因子,如果一个因子同时含有多个数,那么这个序列不是互质的。
判断所有数互质:取第一个数,然后在取其余剩余数的最大值,两者gcd为一则说明所有数互质。

#include <cstdio>
int n,a,d,t[1000003],maxa=-(1<<30);
//maxa保存a的最大值,也是因子的最大值,t[i]表示因子i有多少个,d为n个数的最大公因数
int gcd(int x,int y){
    if(!y) return x;
    return gcd(y,x%y);
}
void fj(int x){//分解质因数
    for(int i=2;i*i<=x;){
        if(!(x%i)){
            ++t[i];//用桶记下来
            while(!(x%i)) x/=i;
        }
        else ++i;
    }
    if(x>1) ++t[x];//不要忘了这一句
}
int main(){
    scanf("%d%d",&n,&a);
    d=a;//d初始值为a
    for(int i=2;i<=n;i++){
        scanf("%d",&a);
        if(maxa<a) maxa=a;//更新maxa
        d=gcd(d,a);//求n个数的公因数可以这么做
        fj(a);//对a分解质因数
    }
    if(d==1){
        for(int i=2;i<=maxa;i++)
            if(t[i]>1) return puts("setwise coprime"),0;
            //t[i]>1说明有几个数有相同的因子,则肯定有一对数不互质
        return puts("pairwise coprime"),0;
    }
    else return puts("not coprime"),0;
    return 0;
}

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan

ACM算法模板 · 一些常用的算法模板-模板合集(打比赛专用) 萌新常用的都在这了,本萌新的模板集。 阅读详情

相关推荐

ArcGIS中利用DEM数据生成地形图既视感的等高线;利用掩膜进行等高线注记;DEM的可视化表达总结

文章目录前言一、效果图展示二、地形(DEM)可视化表达1.一维可视化2.二维可视化2.三维可视化二、ArcGIS中利用DEM数据制作等高线2.三维可视化2.三维可视化2.三维可视化2.三维可视化二、ArcGIS中利用DEM数据制作等高线2.三维可视化2.三维可视化2.三维可视化总结 前言 最近老师布置作业:DEM的可视化表达。想做一个等高线地形图那样、看起来高级一点的等高线,可是我看网上大多数教程都只展示了【等值线】工具,做出来效果都一般。我自认为自己做出来的效果还可以,把步骤分享给大家。 一、

pink_pig__的博客 5万+

AtCoder Beginner Contest 177

AtCoder Beginner Contest 177

青少年趣味编程 939

使用SpringBoot+Vue3开发项目(1)---- 设计用户注册和登录的接口及页面

本文基于黑马大事件项目介绍如何使用SpringBoot+Vue3来实现前后端联调的登录与注册操作。

记得开心一点嘛的博客 3628

AtCoder Beginner Contest 131

AtCoder Beginner Contest 131

青少年趣味编程 1098

三. zemax光学设计流程+案例

文章目录zemax 基本操作:1. 建立光学基本模型2. 像质评价3. 优化(重点)4. 公差分析简单镜头设计 zemax 基本操作: 1. 建立光学基本模型 2. 像质评价 3. 优化(重点) 对系统设定的约束条件或目标值 统称为操作数。 操作数: 光学特性参数(焦距EFFL,近轴放大率PMAG,入瞳位置EMPP) 像差参数(球差SPHA,彗差COMA,像散ASTI) 边界条件(中心厚度值CTVA,边缘厚度值ETAV) 优化的主要步骤: 设置评价函数和优化操作数 一般小像差系统采用波像差 构建

Taiiiii的博客 8042

记一次完整的RPG Maker MV游戏逆向过程(思路一)

了解RPG Maker MV的文件建构 上一篇文章,我们已经成功在PC上运行了游戏,那我们如何对游戏进行逆向呢? 首先要了解正常的RPG Maker MV制作的游戏应该具有哪些文件,以及他的结构 那如何了解他的结构呢,很简单,我们只需要用RPG Maker MV创建一个默认工程,来看看一个游戏的最简结构是怎么样的 创建新项目 项目创建完成 查看项目目录结构 是不是和之前解包出来的很像呢? 通...

Ciiiiiing的博客 1万+

AtCoder Beginner Contest 198

AtCoder Beginner Contest 198

青少年趣味编程 997

【智能流体力学】使用ANSYS Fluent + SpaceClaim + SCDM制作流体力学前处理的几何模型

生成来源.scdoc文件来自前处理工具生成的模型数据,或在 FLUENT 中创建和保存的模型。生成方式: 通过前处理工具导出网格数据,或在 FLUENT 中设置并保存模型。作用: 用于储存模型的结构信息和设置,确保在 FLUENT 中的正确导入和使用。.x_t文件是 Parasolid 文件格式的扩展名,用于存储三维模型数据。在 ANSYS Fluent 中,这种格式通常用于在前处理工具之间交换几何数据。要创建.x_t。

源代码杀手的博客 3259

AtCoder Beginner Contest 177 E.Coprime

AtCoder Beginner Contest 177 E.Coprime 题目链接 这题我直接想到了质因数分解????,先素筛出 1e61e61e6 的质因数,然后对每个数质因数分解,每个质因数都标记一下,如果没有重复,那么这一组数肯定两两互质;如果重复,求这一组数的公因数,如果是 111,输出 setwise coprimesetwise\ coprimesetwise coprime,否则输出 not coprimenot\ coprimenot copri

旺崽的博客 2917

Android Google 支付接入

1. 从 2023 年 8 月 2 日起,所有新应用都必须使用结算库版本 5 或更高版本。自 2023 年 11 月 1 日起,现有应用的所有新版本都必须使用结算库版本 5 或更高版本。 2. 如果您的应用以 Android 14 或更高版本为目标平台,您必须更新到 PBL 5.2.1 或 PBL 6.0.1 或更高版本。

帅次的博客 9391

手把手教你学AI GPU的UMD驱动软件开发专栏简介

通过本专栏的学习,您将掌握UMD的核心概念、开发环境搭建、API实现、内存管理和同步技术,以及在实际AI场景中的应用。通过本专栏的学习,您将不仅掌握UMD驱动开发的核心技术,还将能够将这些技术应用到实际的AI应用场景中,为您的AI应用提供更高效的硬件加速支持。无论您是想开发自己的AI加速框架,还是希望深入理解现有AI加速库的工作原理,本专栏都将为您提供宝贵的知识和实践经验。:本专栏不仅讲解UMD驱动的核心概念,还通过精心设计的实战案例,引导您从零开始构建UMD驱动,真正掌握AI GPU驱动开发的技能。

MHD0815的博客 104

AtCoder Beginner Contest 177 E - Coprime(数论+思维)

传送门 题目大意: 有N个数,如果两两之间相互互质,则输出pairwise coprime,否则如果是gcd(A1,A2,……,An)==1,则输出setwise coprime,否则输出not coprime。 解题思路: 这题数论题其实应该挺简单的,比赛的时候其实已经想的差不多了,但是不知道具体怎么实现,判断是不是setwise, 就是把n个数依次求gcd就行了。 每求过一次两数的gcd, 就把原来的两数删除并把新的gcd加入即可。而求是否是pairwise,我的想法是只要判断素数和素数、素数和合数

qq_43697256的博客 798

Unity如何实现3D物体拆解组装

最近有一个需求,是做一个发动机的拆卸和安装功能,其实是一个很简单的功能,但是其中有一个点我觉的非常有意思,就是拖拽组装时,物体如何精准拖到目标位置,思路有了,但是我一直找不到实现方式,早晨刷牙时无意间想到了叉乘,我才有了解决方案。就凭这一次的灵光乍现,也很有必要写篇博客来记录一下。首先,我们先来看下我们要实现的效果,就是对一个发动机(任意多组件物体,如:车)的360°预览查看,手动拖拽拆解,手动拖拽组装。360°旋转视角远近拉伸视角点击拖拽拆卸拖拽组装。

TxNet 1万+

Atcoder Beginner Contest 137

Atcoder Beginner Contest 137

青少年趣味编程 817

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

AtCoder Beginner Contest 234

AtCoder Beginner Contest 234

青少年趣味编程 996

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

AtCoder Beginner Contest 180

AtCoder Beginner Contest 180

青少年趣味编程 640

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

AtCoder Beginner Contest 161

AtCoder Beginner Contest 161

青少年趣味编程 949

AtCoder Beginner Contest 195

AtCoder Beginner Contest 195

青少年趣味编程 1003

AtCoder Beginner Contest 279

AtCoder Beginner Contest 279

青少年趣味编程 1026

AtCoder Beginner Contest 136

AtCoder Beginner Contest 136

青少年趣味编程 847

AtCoder Beginner Contest 196

AtCoder Beginner Contest 196

青少年趣味编程 952

AtCoder Beginner Contest 147

AtCoder Beginner Contest 147

青少年趣味编程 896

AtCoder Beginner Contest 200

AtCoder Beginner Contest 200

青少年趣味编程 832

AtCoder Beginner Contest 177 A~D 题解

ABC177 A~D 题解 A - Don't be late B - Substring C - Sum of product of pairs D - Friends

天生我材必有用,千金散尽还复来。 8653

AtCoder Beginner Contest 148

AtCoder Beginner Contest 148

青少年趣味编程 769

AtCoder Beginner Contest 358

AtCoder Beginner Contest 358

青少年趣味编程 1057
上一篇: 2017 年ICPC 中国大陆区域赛铜牌题解
下一篇: 部分和问题(DFS)
ypw44
博客等级 码龄7年 125粉丝 365原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值