首页 > 其他分享 > AtCoder Beginner Contest 275

AtCoder Beginner Contest 275

时间:2022-11-08 13:23:54浏览次数:41  
标签:AtCoder ch Beginner int long ++ 275 && getchar

A - Find Takahashi

找到序列中最高的数存在的位置

#include<bits/stdc++.h>

using namespace std;

int read() {
    int x = 0, f = 1, ch = getchar();
    while ((ch < '0' || ch > '9') && ch != '-') ch = getchar();
    if (ch == '-') f = -1, ch = getchar();
    while (ch >= '0' && ch <= '9') x = (x << 3) + (x << 1) + ch - '0', ch = getchar();
    return x * f;
}

int32_t main() {
    int n = read() , res = INT_MIN , id = 0;
    for( int i = 1 , x ; i <= n ; i ++ ){
        x = read();
        if( x > res ) res = x , id = i;
    }
    cout << id << "\n";

    return 0;
}

B - ABC-DEF

注意乘法可能会爆精度,所以注意取模

#include<bits/stdc++.h>
#define int long long
using namespace std;

int read() {
    int x = 0, f = 1, ch = getchar();
    while ((ch < '0' || ch > '9') && ch != '-') ch = getchar();
    if (ch == '-') f = -1, ch = getchar();
    while (ch >= '0' && ch <= '9') x = (x << 3) + (x << 1) + ch - '0', ch = getchar();
    return x * f;
}

const int mod = 998244353;

int32_t main() {
    int a = read() % mod , b = read() % mod , c = read() % mod , d = read() % mod ;
    int e = read() % mod , f = read() % mod;
    a = a * b % mod * c % mod;
    d = d * e % mod * f % mod;
    cout << ( ( a - d ) % mod + mod ) % mod;
    return 0;
}

C - Counting Squares

#代表棋子,问由棋子做顶点可以组合出多少个正方形。

首先先用 dfs 枚举出四个棋子。如果四个点两两之间的距离只有两种情况,那么该矩形就是一个正方形

#include<bits/stdc++.h>
#define int long long
using namespace std;

int read() {
    int x = 0, f = 1, ch = getchar();
    while ((ch < '0' || ch > '9') && ch != '-') ch = getchar();
    if (ch == '-') f = -1, ch = getchar();
    while (ch >= '0' && ch <= '9') x = (x << 3) + (x << 1) + ch - '0', ch = getchar();
    return x * f;
}

const int mod = 998244353;
int res;
vector< pair<int,int> > p , t;

int  dis( int ax , int ay , int bx , int by ){
    return ( ax - bx ) * ( ax - bx ) + ( ay - by ) * ( ay - by );
}
void dfs( int x ){
    if( t.size() == 4 ){
        set<int> s;
        for( int i = 0 ; i < 4 ; i ++ )
            for( int j = 0 ; j < i ; j ++ )
                s.insert( dis( t[i].first , t[i].second , t[j].first , t[j].second ) );
        if( s.size() == 2 ) res ++;
        return;
    }
    for( int i = x ; i < p.size() ; i ++ )
        t.push_back( p[i] ) , dfs( i+1 ) , t.pop_back();
    return;
}

int32_t main() {
    string s[10];
    for( int i = 0 ; i < 9 ; i ++ )
        cin >> s[i];
    for( int i = 0 ; i < 9 ; i ++ )
        for( int j = 0 ; j < 9 ; j ++ )
            if( s[i][j] == '#' ) p.push_back( { i , j } );
    dfs( 0 );
    cout << res << "\n";
    return 0;
}

D - Yet Another Recursive Function

这道题看似数据范围很大,但是因为是除法的问题,所以一共不会使用超过 100 个数组。发现这点的话就是一个简单的记忆化搜索,记忆化用个 map 存一下就好

#include<bits/stdc++.h>
#define int long long
using namespace std;

map<int,int> f;

int F( int x ){
    if( f.count(x) ) return f[x];
    return f[x] = F( x / 2 ) + F( x / 3 );
}
int32_t main() {
    int n;
    cin >> n;
    f[0] = 1;
    cout << F(n) << "\n";
	return 0;
}

标签:AtCoder,ch,Beginner,int,long,++,275,&&,getchar
From: https://www.cnblogs.com/PHarr/p/16869348.html

相关文章

  • Atcoder Beginner Contest 276(A~G)
    赛时A简单字符串处理;B简单vector处理;C找上一个排列。D找到每一个数因子\(2\)的个数和\(3\)的个数,并判断除去这些因子之后剩下的值是否相同,若不同则不能满足条......
  • AtCoder Beginner Contest 276
    A-Rightmost#include<bits/stdc++.h>usingnamespacestd;int32_tmain(){strings;cin>>s;for(inti=s.size();i>=1;i--)i......
  • AtCoder Regular Contest 070&071
    ARC070只会个DQAQ,所以就合并到ARC071了。ARC070D-NoNeed给定\(n\)个整数\(a_1\sima_n\),对于\(a_i\),若原来所有包含\(a_i\)且和\(\geK\)的子集去掉\(......
  • AtCoder Beginner Contest 276
    今天来讲解一下AtCoderBeginnerContest276 C和D传送地址:https://atcoder.jp/contests/abc276一. C-PreviousPermutation题目大意:给你一个有数字1~n组成的序列......
  • AtCoder Beginner Contest 276
    咕咕咕咕。E-RoundTrip如果存在某个点双满足这个点双包含起点且点双大小大于\(4\)则有解。F-DoubleChance考虑不断在之前的基础上在末尾添加一个数,每次更新期......
  • AtCoder Beginner Contest 276 A~G 题解
    今天凌晨CFD题差一句判断AC,晚上ABCG题把插板法和快速幂搞混差点AC。事不过三,再这样一次我直接紫砂。太简单的题就不放翻译和代码了。(事实上这场A-E都是大水题......
  • 【atcoder abc276 】(a* 搜索)
    importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.util.*;/****@autho......
  • ABC275 E~F
    E:披着概率外皮的简单数数题。CodeF:简单DP,设\(f_{i,j,0/1}\)表示前\(i\)个数,选的数的和为\(j\),第\(i\)个数选不选的最小操作次数。转移很显然,不清楚可以看代码......
  • Atcoder Beginner Contest ABC 275 Ex (H) Monster 题解
    先明确\(a_i\)是一个怪物的血量,\(b_i\)是攻击的代价。发现如果我们想攻击一个怪物,不如找出一个极大的包含它的区间,满足这个区间内所有怪物的攻击代价都不大于它本身的代价,......
  • AtCoder Regular Contest 068
    C简单,D有点意思,但没啥用,不写。F有点好玩,想了一个小时,看了一上午题解,弄明白了。E-SnukeLine\(n\)个物品,第\(i\)个物品在\([l_i,r_i]\)间。你初始在第0格,......