AtCoder Beginner Contest 264笔记
目录
A - "atcoder".substr()
题目描述
题目分析
题目代码
B - Nice Grid
题目描述
题目分析
题目代码
C - Matrix Reducing
题目描述
题目分析
题目代码
D - "redocta".swap(i,i+1)
题目描述
题目分析
题目代码
A - "atcoder".substr()
A - "atcoder".substr()https://atcoder.jp/contests/abc264/tasks/abc264_a
题目描述
输出atcoder中从第L位到第R位的子串(从第一位记起)
题目分析
非常水的一道题,用substr就能解决(人家题目标题就已经给出了答案)
题目代码
#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 l,r;int main(){cin>>l>>r;string s="atcoder";cout<<s.substr(l-1,r-l+1); return 0;
}//ACplease!!!
B - Nice Grid
B - Nice Gridhttps://atcoder.jp/contests/abc264/tasks/abc264_b
题目描述
如图,将一个15*15的二维矩阵用黑白两种颜色一圈圈间隔涂满,请你求出第R行第C列是哪种颜色
题目分析
这道题容易让人觉得要用数学解,但其实硬做完全可以。首先把整个矩阵按要求填充好,然后再输出即可
题目代码
#include<bits/stdc++.h>
#define n 15
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 a[20][20];
int r,c;int main(){cin>>r>>c;for(int i=1;i<=n/2;i+=2){int l=i,r=n-i+1;for(int j=l;j<=r;j++){if(j==l||j==r){for(int k=l;k<=r;k++){a[j][k]=1;}}else{a[j][l]=a[j][r]=1;}}}
/*for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)cout<<a[i][j];cout<<endl; }
*/if(a[r][c]==1)cout<<"black"<<endl;else cout<<"white"<<endl;return 0;
}//ACplease!!!
C - Matrix Reducing
C - Matrix Reducinghttps://atcoder.jp/contests/abc264/tasks/abc264_c
题目描述
给你两个二维数组A和B,问你能否通过删除某一行或某一列的方式使得A变为B
题目分析
这道题其实只需简单模拟,删除不合法(即包含B数组所不包含的元素)的行或列,最后判断删除行列后A是否变为了B即可
题目代码
#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 h1,h2,w1,w2;
int a[15][15],b[15][15];
int h[15],w[15];int main(){cin>>h1>>w1;for(int i=1;i<=h1;i++){for(int j=1;j<=w1;j++){cin>>a[i][j];}}cin>>h2>>w2;for(int i=1;i<=h2;i++){for(int j=1;j<=w2;j++){cin>>b[i][j];}}if(h1<h2||w1<w2){cout<<"No"<<endl;return 0;}for(int i=1,x=1;i<=h1;i++){int l=1;for(int j=1,k=b[x][1];j<=w1;j++){if(w[j])continue;if(a[i][j]==k){k=b[x][++l];}}if(l<=w2){h[i]=1;continue;}else{int l=1;for(int j=1,k=b[x][l];j<=w1;j++){if(a[i][j]!=k){w[j]=1;}else{k=b[x][++l];}}x++;}}int x=1;for(int i=1;i<=h1;i++){if(h[i])continue;for(int j=1,l=1;j<=w1;j++){if(w[j])continue;else{if(a[i][j]!=b[x][l]){cout<<"No"<<endl;return 0;}else l++;}}x++;}if(x<=h2)cout<<"No"<<endl;else cout<<"Yes"<<endl;return 0;
}//ACplease!!!
D - "redocta".swap(i,i+1)
D - "redocta".swap(i,i+1)https://atcoder.jp/contests/abc264/tasks/abc264_d
题目描述
给你一个atcoder的排列,问你至少经过几次相邻元素交换才能使得这个排列变成atcoder
题目分析
这道题看起来有些棘手,其实只要掌握特定知识,在进行一些转化就能迎刃而解。首先我们可以把输入的字符串转成数组,也就是说每个字符在数组里对应着在atcoder中的索引,这样整个问题就转化为了至少经过几次相邻元素交换才能使得一个数组变为升序。显而易见的是,这个问题的答案等于于逆序对数的个数,也就是说有多少个数对不符合最终排序要求,只要算出逆序对数的个数,就能找到这道题的答案
题目代码
#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;}
string s,atcoder="atcoder";
map <char,int> mp;
vector <int> v;
int ans=0;int main(){for(int i=0;i<atcoder.size();i++)mp[atcoder[i]]=i;cin>>s;for(int i=0;i<s.size();i++){v.push_back(mp[s[i]]);}for(int i=0;i<v.size();i++){for(int j=i+1;j<v.size();j++){if(v[i]>v[j])ans++;}}cout<<ans<<endl;return 0;
}//ACplease!!!
AtCoder Beginner Contest 264笔记相关推荐
- AtCoder Beginner Contest 264 G.String Fair(最短路/暴力dp 补写法)
题目 n(n<=18278)个串,第i个串Ti(Ti为纯小写字母串且长度不超过3), 得分Pi(-1e9<=Pi<=1e9),表示只要子串中出现一次Ti,就会获得Pi的得分 对于你可 ...
- freee Programming Contest 2022(AtCoder Beginner Contest 264)A~D题详细讲解
目录 博主赛情 网站链接 比赛简介 Contest Information Reason why freee needs AtCoder users freee's business content ...
- AtCoder Beginner Contest 265笔记
目录 A - Apple 题目描述 题目分析 题目代码 B - Explore 题目描述 题目分析 题目代码 C - Belt Conveyor 题目描述 题目分析 题目代码 D - Iroha an ...
- freee Programming Contest 2022(AtCoder Beginner Contest 264) 题解 (A~D)
A - "atcoder".substr() Time Limit: 2 sec / Memory Limit: 1024 MB Score : 100100100 points ...
- 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的字符串,定义一种子序列为:在这个子序列中,相同的字符必定连续出现,求出这样的子 ...
最新文章
- Weex第一天:手势
- 为什么由Python转go
- gan神经网络_神经联觉:当艺术遇见GAN
- Linux系统下,MySQL以及禅道的安装/卸载
- Python3 B格注释
- 【Pytorch神经网络实战案例】11 循环神经网络结构训练语言模型并进行简单预测
- 51单片机的LED的位定义(通俗易懂)
- java arraystoreexception_java基础面试
- RegisterStartupScript和RegisterClientScriptBlock的用法
- 免费暗黑3暗藏的危险
- 学习成功:中学生成就梦想的15堂必修课
- 一位北美 IT 技术人教你如何破局
- 加速度传感器和角度传感器
- Elasticsearch 集群报错 master not discovered yet
- 【DeepSORT系列之】Cosine Metric Learning训练与demo可视化
- GitHub 9K Star!Apollo作者手把手教你微服务配置中心之道
- python随机密码生成程序
- 微信支付宝收款二维码还能用吗?权威解读
- 居然能查看微信访客记录,这款神器牛逼了。
- 北京大学研制成铷原子钟——三千年误差不到一秒
热门文章
- blast的替代品,使用hmmer寻找同源序列
- 调用微信方法报错errMsg:chooseImage:fail, the permission value is offline verifying
- 计算机xp画板在哪找,xp系统画图工具在哪里|xp画图工具有什么功能
- 指纹识别_Android指纹认证教程
- 【安全攻略】Thinkphp5.0检测上传的文件是否包含木马
- 利用Css3样式属性Cursor来更换自定义个性化鼠标指针(光标)
- 山西好点的计算机专科学校排名及分数线,2019山西十大专科学校排名及高考录取分数线...
- 基于运放和三极管的恒流源电路
- bluetooth 驱动 Makefile
- 用单摆测量重力加速度