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

AtCoder Beginner Contest 130

时间:2023-01-27 22:45:14浏览次数:60  
标签:std AtCoder Beginner int sum namespace 130 using include

AtCoder Beginner Contest 130

https://atcoder.jp/contests/abc130
补补之前的

A - Rounding

#include <bits/stdc++.h>

using namespace std;

int main () {
    int a, b;
    cin >> a >> b;
    if (a < b)  cout << 0;
    else    cout << 10;
}

B - Bounding

#include <bits/stdc++.h>

using namespace std;

int main () {
    int n, m, x, sum = 0;
    bool find = false;
    cin >> n >> m;
    for (int i = 1; i <= n; i++) {
        cin >> x;
        sum += x;
        //cout << sum << endl;
        if (find)   continue;
        
        if (sum > m)   find = true, cout << i << endl;
    }
    if (!find)  cout << n + 1;
}

C - Rectangle Cutting

#include <bits/stdc++.h>

using namespace std;

int main () {
    double n, m, x, y;
    cin >> n >> m >> x >> y;
    cout << fixed << setprecision (9) << n * m / 2.0 << ' ';
    if (n / 2 == x && m / 2 == y)     cout << 1;
    else    cout << 0;
}

D - Enough Array

#include <bits/stdc++.h>
#define int long long

using namespace std;
const int N = 1e5 + 5;
int n, m, sum[N], ans;

signed main () {
    cin >> n >> m;
    for (int i = 1; i <= n; i++)    cin >> sum[i], sum[i] += sum[i-1];
    int l = 1, r = 1;
    while (r <= n) {
        if (sum[r] - sum[l-1] < m)      r ++;
        else    ans += n - r + 1, l ++;  
    }
    cout << ans << endl;
}

E - Common Subsequence

#include <bits/stdc++.h>
#define ll long long

using namespace std;
const int N = 2e3 + 5, mod = 1e9 + 7;
ll n, m, a[N], b[N], f[N][N]; //f[i][j]: a的前i项和b的前j项中有多少对不相同的公共子序列

int main () {
    cin >> n >> m;
    f[0][0] = 1;
    for (int i = 1; i <= n; i++)    cin >> a[i], f[i][0] = 1;
    for (int j = 1; j <= m; j++)    cin >> b[j], f[0][j] = 1;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            (f[i][j] += f[i-1][j] + f[i][j-1] - f[i-1][j-1] + mod) %= mod;
            if (a[i] == b[j])   (f[i][j] += f[i-1][j-1] + mod) %= mod;
        }
    }
    cout << f[n][m] << endl;
}

F - Minimum Bounding Box

分类讨论。

标签:std,AtCoder,Beginner,int,sum,namespace,130,using,include
From: https://www.cnblogs.com/CTing/p/17069438.html

相关文章

  • Atcoder ABC244E - King Bombee 题解
    原题:AtcoderABC244E-KingBombee题意给你一张图,从\(S\)到\(T\),经过\(k\)条边,经过\(X\)号点偶数次的方案数。做法设\(f_{i,j,k}\)表示经过\(i\)条边,......
  • AtCoder Beginner Contest 159
    A-TheNumberofEvenPairs相加为偶数只有偶加偶和奇加奇两种情况,其实就是在\(n\)个数中取两个(\(C\binom{2}{n}\)),在\(m\)个数中取两个(\(C\binom{2}{m}\))。B-String......
  • AtCoder Beginner Contest 126
    AtCoderBeginnerContest126https://atcoder.jp/contests/abc126A-ChangingaCharacter#include<bits/stdc++.h>usingnamespacestd;intmain(){int......
  • AtCoder Beginner Contest 162
    A-Lucky7大水题,模拟即可。#include<iostream>#include<cstdio>usingnamespacestd;intmain(){strings;cin>>s;if(s[0]=='7'||s[1]==......
  • AtCoder Beginner Contest 172
    A-Calc(abc172a)题目大意给定一个\(a\),输出\(a+a^2+a^3\)解题思路模拟即可。神奇的代码#include<bits/stdc++.h>usingnamespacestd;usingLL=long......
  • 力扣---1306. 跳跃游戏 III
    这里有一个非负整数数组 arr,你最开始位于该数组的起始下标 start 处。当你位于下标 i 处时,你可以跳到 i+arr[i]或者i-arr[i]。请你判断自己是否能够跳到对......
  • 【最短路】Atcoder Beginner Contest 286----E
    题目:E-Souvenir(atcoder.jp)题解:首先这道题可以很容易看出来是求最短路。最开始自己是用bfs写的,出现了WA,TLE,RE等错误。因为对于每种情况会有Q次询问,如果每次询问都......
  • 【多重背包】Atcoder Beginner Contest 286----D
    题目:D-MoneyinHand(atcoder.jp)分析:经典的多重背包。用dp[i]表示i能否正好凑出。先复习一下多重背包。多重背包就是有N组物品,每组最多有k个,每组可以选多个。分组背......
  • AtCoder Beginner Contest 286 解题报告
    AtCoderBeginnerContest286解题报告\(\text{ByDaiRuiChen007}\)ContestLinkA.RangeSwap直接模拟交换过程即可时间复杂度\(\Theta(n)\)#include<bits/stdc++......
  • AtCoder Beginner Contest 286
    A-RangeSwap(abc286a)题目大意给定长度为\(n\)的数组\(a\)和\(p,q,r,s\),交换\(a[p..q]\)和\(a[r..s]\)并输出交换后的数组\(a\)。解题思路模拟即可。神奇......