ATcoder(atcoder.jp)A~D
由于比赛试题全英文,非Markdown,博主由于没有时间,不方便把题架搬运过来,请谅解!只好将题目链接至于下方。
A - Pawn on a Grid
题目描述
给出一个字符矩阵,将‘’#‘’的个数输出
代码展示
#include <bits/stdc++.h>
using namespace std;
int main(){
int h,w;
char a[15][15];
cin>>h>>w;
int sum=0;
for(int i=1;i<=h;i++){
for(int j=1;j<=w;j++){
cin>>a[i][j];
if(a[i][j]=='#')
sum++;
}
}
cout<<sum<<endl;
return 0;
}
B - Inverse Prefix Sum
题目描述
给定n个数 a 1 , a 2 , … , a n a_1,a_2,\dots,a_n a1,a2,…,an,输出 a 1 , a 2 − a 1 … a n − a n − 1 a_1,a_2-a_1\dots a_n-a_{n-1} a1,a2−a1…an−an−1
代码展示
#include <bits/stdc++.h>
using namespace std;
int n,a,b;
int main(){
cin>>n;
cin>>a;
cout<<a<<" ";
while(cin>>b){
cout<<b-a<<" ";
a=b;
}
return 0;
}
C - Extra Character
题目描述
输入两个字符串,输出两个字符串第一个出现不同字母的位置
代码展示
#include <bits/stdc++.h>
using namespace std;
int main(){
string s,t;
cin>>s>>t;
for(int i=0;i<t.size();i++){
if(s[i]!=t[i]){
cout<<i+1<<endl;
break;
}
}
}
D - Factorial and Multiple
题目描述
给定一个整数,输出一个n,使n的阶乘是这个整数的整数倍
代码展示(掉大点,非AC)
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int ans=1;
for(int i=1;i<=n;i++){
ans*=i;
if(ans%n==0){
cout<<i<<endl;
break;
}
}
}
正解
本题由于数字太大,大部分选手在这里掉点,但是通过高精度还是可以实现的,通过高精度乘法,加上高精/低精的代码就可以了,代码博主学业繁忙没时间实现,代码就不展示了