AtCoder Beginner Contest 265笔记
目录
A - Apple
题目描述
题目分析
题目代码
B - Explore
题目描述
题目分析
题目代码
C - Belt Conveyor
题目描述
题目分析
题目代码
D - Iroha and Haiku (New ABC Edition)
题目描述
题目分析
题目代码
赛时代码
赛后代码
我的Atcoder账号
A - Apple
A - Applehttps://atcoder.jp/contests/abc265/tasks/abc265_a
题目描述
高桥去买苹果,已知买一个苹果需x元,买三个苹果需y元,问你买n个苹果至少需要多少钱
题目分析
这道题只需分类讨论,选择最优策略即可
题目代码
#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a/(gcd(a,b))*b;}
int x,y,n;int main(){cin>>x>>y>>n;if(3*x>y){cout<<n/3*y+n%3*x<<endl;} else{cout<<n*x<<endl;}return 0;
}//ACplease!!!
B - Explore
B - Explorehttps://atcoder.jp/contests/abc265/tasks/abc265_b
题目描述
有n个房间排成一列,起初高桥在第一个房间,且时间限额为t单位时间,从第i个房间到下一个房间需
单位时间。在这些房间内,共有m个奖励,每个奖励是在到达特定房间后获得若干单位时间限额。剩余时间限额在任何时刻都必须大于0单位时间。问你能否顺利到达最后一个房间
题目分析
这道题只需要根据题目要求进行模拟即可,并不需要太多编程基础
题目代码
#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a/(gcd(a,b))*b;}
int n,m;
long long t;
long long a[100005],b[100005];int main(){cin>>n>>m>>t;for(int i=2;i<=n;i++)cin>>a[i];for(int i=1;i<=m;i++){long long x,y;cin>>x>>y;b[x]=y;}for(int i=2;i<=n;i++){t-=a[i];
// cout<<t<<endl;if(t<=0){cout<<"No"<<endl;return 0;}t+=b[i];}cout<<"Yes"<<endl;return 0;
}//ACplease!!!
C - Belt Conveyor
C - Belt Conveyorhttps://atcoder.jp/contests/abc265/tasks/abc265_c
题目描述
给你一个h行w列的迷宫,迷宫的每一位都标注着U,D,L或者R,你一开始在第1行第1列,重复执行以下步骤:
- 如果当前位置标注的是U,位置向上移动一格
- 如果当前位置标注的是D,位置向下移动一格
- 如果当前位置标注的是L,位置向左移动一格
- 如果当前位置标注的是R,位置向右移动一格
- 若执行以上步骤后位置出界,则直接打印之前位置
如果陷入死循环,即移动次数无限,则输出-1
题目分析
这道题移动和判断出界并不难,关键是如何判断是否陷入死循环。所谓死循环,其实就是在一个区域内重复移动,因此我们只需判断每一步到达的位置是否已经来过即可,如果已经来过,那么就说明陷入死循环,直接输出-1
题目代码
#include<bits/stdc++.h>
using namespace std;
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a/(gcd(a,b))*b;}
int h,w;
char g[505][505];
bool visited[505][505];int main(){cin>>h>>w;for(int i=1;i<=h;i++){for(int j=1;j<=w;j++){cin>>g[i][j];}}int x=1,y=1;while(1){visited[x][y]=1;if(g[x][y]=='U'){if(x==1){cout<<x<<' '<<y;return 0;}x--;}else if(g[x][y]=='D'){if(x==h){cout<<x<<' '<<y;return 0;}x++;}else if(g[x][y]=='L'){if(y==1){cout<<x<<' '<<y;return 0;}y--;}else{if(y==w){cout<<x<<' '<<y;return 0;}y++;}if(visited[x][y]==1){cout<<-1<<endl;return 0;}}return 0;
}//ACplease!!!
D - Iroha and Haiku (New ABC Edition)
D - Iroha and Haiku (New ABC Edition)https://atcoder.jp/contests/abc265/tasks/abc265_d
题目描述
给你一个长度为n的数组,问你是否存在符合以下要求的整形元组(x,y,z,w):
题目分析
这道题其实只需要用前缀和配合上二分查找便能解决,不论是用递归还是用set容器,代码量都并不大
题目代码
赛时代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a/(gcd(a,b))*b;}
int n;
int res[4],a[200005],s[200005];bool solve(int pos,int k){if(k==4)return 1;while(pos<=n){if(binary_search(s+pos,s+n+1,res[k]+s[pos])){int *p=lower_bound(s+pos,s+n+1,res[k]+s[pos]);if(solve(p-s,k+1)){return 1;} }pos++;}
// cout<<k<<endl;return 0;
}
signed main(){cin>>n>>res[1]>>res[2]>>res[3];for(int i=1;i<=n;i++){cin>>a[i];s[i]=s[i-1]+a[i];}if(solve(0,1)){cout<<"Yes"<<endl;}else{cout<<"No"<<endl;}return 0;
}//ACplease!!!
赛后代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int lcm(int a,int b){return a/(gcd(a,b))*b;}
int n,p,q,r,sum;
set <int> s({0});signed main(){cin>>n>>p>>q>>r;for(int i=1;i<=n;i++){int a;cin>>a;sum+=a;s.insert(sum);}for(int x:s){if(s.find(x+p)!=s.end()&&s.find(x+p+q)!=s.end()&&s.find(x+p+q+r)!=s.end()){cout<<"Yes"<<endl;return 0;}}cout<<"No"<<endl;return 0;
}//ACplease!!!
我的Atcoder账号
FrankChttps://atcoder.jp/users/FrankC
AtCoder Beginner Contest 265笔记相关推荐
- AtCoder Beginner Contest 202 D - aab aba baa(组合计数,字典序)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Problem 有 AAA 和 aaa,BBB 个 bbb ,可以使用这 A+BA+BA+B 个字符任 ...
- AtCoder Beginner Contest 197 题解(A ~ F)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Rotate B - Visibility C - ORXOR D - Opposite ...
- AtCoder Beginner Contest 198 (A ~ F)题解
目录 A. Div B. Palindrome with leading zeros C. Compass Walking D. Send More Money E. Unique Color F. ...
- AtCoder Beginner Contest 215 G - Colorful Candies 2
AtCoder Beginner Contest 215 G - Colorful Candies 2 有n个糖果,每个糖果有着一个颜色a[i],每次拿k个糖果期望拿到E(x)个不同颜色的糖果,求出k ...
- AtCoder Beginner Contest 215 F - Dist Max 2
AtCoder Beginner Contest 215 F - Dist Max 2 平面上有一系列的点(xi,yi)(x_i,y_i)(xi,yi),定义两点(xi,yi),(xj,yj)(x ...
- AtCoder Beginner Contest 215 E - Chain Contestant
AtCoder Beginner Contest 215 E - Chain Contestant 给出一个只包括A~J的字符串,定义一种子序列为:在这个子序列中,相同的字符必定连续出现,求出这样的子 ...
- AtCoder Beginner Contest 204 F Hanjo 2
AtCoder Beginner Contest 204 F Hanjo 2 H宽,W长的二维平面上,用1 * 1或者2 * 1的地砖来铺,要求铺满,求出方案数. 数据范围H <= 6, W & ...
- Caddi Programming Contest 2021(AtCoder Beginner Contest 193) 题解
Caddi Programming Contest 2021(AtCoder Beginner Contest 193) A - Discount 打折浮点数除即可 B - Play Snuke 枚举 ...
- Mynavi Programming Contest 2021(AtCoder Beginner Contest 201)题解
文章目录 A - Tiny Arithmetic Sequence B - Do you know the second highest mountain? C - Secret Number D - ...
最新文章
- 小红书做直播的背后,隐藏了什么秘密?
- 机器学习和计算机视觉的20大图像数据集
- angularjs之browserTrigger
- java is number_数据类型----Number
- 如何遍历一个JS对象中的所有属性,输出键值对--我居然犯错半个小时
- [html]如何让元素固定在页面底部?有哪些比较好的实践?
- 成为大数据工程师需要哪些技能?(一文秒懂大数据)
- android解码芯片,全志V316超清4K视频编解码芯片处理器,
- HDU 2076 夹角有多大
- 商户都在用的进销存软件,哪一个性价比最高?
- 关于Linux性能调优中系统CPU监测信息统计的一些笔记
- Mysql sql执行错误#1436 Thread stack overrun:
- html svg 线条动画,HTML5 SVG简单的动态绘制轮廓线条动画插件
- 亮相SIGGRAPH 太极拳三维教学App制作揭秘
- 【Unity】脚本实现动态模型切割
- 傻子,疯子,一根筋的人才能创业成功!
- 检查两个单词是否为变位词(Anagram)
- python多级菜单_多级菜单.py
- STM32F4驱动NEC协议的红外接收头
- 单片机c语言怎么实现按键松开,灯还保持松开前的状态,单片机C语言程序设计:K1-K4按键状态显示...