AtCoder Beginner Contest 090题解

                AtCoder Beginner Contest 090

题目链接:https://abc090.contest.atcoder.jp/

A题题解:水题..直接输出左上对角线即可。

AC代码:

#include 
using namespace std;
#define _for(i,a,b) for(int i=a;i<=b;i++)
char a[4][4];
int main(int argc, char const *argv[])
{
	_for(i,1,3)
	{
		_for(j,1,3)cin>>a[i][j];
	}
	cout<

B题题意:求给定区间中回文数的个数。

B题题解:暴力即可。

AC代码:

#include 
using namespace std;
#define _for(i,a,b) for(int i=a;i<=b;i++)
bool check(int x)   
{  
  if (x < 0) return false;  
  int div = 1;  
  while (x / div >= 10) {  
    div *= 10;  
  }  
  while (x != 0) {  
    int l = x / div;    
    int r = x % 10;  
    if (l != r) return false;  
    x = (x % div) / 10;  
    div /= 100;  
  }  
  return true;  
}  
int n,m;
int main(int argc, char const *argv[])
{
	cin>>n>>m;
	int ans = 0;
	_for(i,n,m)if(check(i))ans++;
	cout<

C题题意:给定一个矩阵,每个点放正面朝上的牌,依次翻动每张牌,翻动时会同时翻动该点周围8个点的牌,问最后正面朝下的牌的个数

C题题解:对于只有一行的情况就是只有两头的牌最后是正面朝上的,多行的情况下可以看出只有最外围一圈的牌翻动偶数次,即最后正面朝上。

AC代码:

#include 
using namespace std;
#define _for(i,a,b) for(int i=a;i<=b;i++)
long long n,m;
int main(int argc, char const *argv[])
{
	cin>>n>>m;
	if(n==1&m==1)cout<<1<

D题题意:给定范围N和一个整数K,找到小于N的两个数a,b,使得a除以b的余数>=K,问有多少个这样的组合

D题题解:对i(k

AC代码:

#include 
using namespace std;
#define _for(i,a,b) for(int i=a;i<=b;i++)
int n,k;
int main(int argc, char const *argv[])
{
	long long ans = 0;
	cin>>n>>k;
	int g = 0;
	if(k==0)cout<<(long long)n*n<=k)gg = kk-k+1;
			ans+=gg;
			ans+=now*num;
		}
		cout<


你可能感兴趣的:(OJ系列-AtCoder,模拟,Atcoder)