首页 > 其他分享 >Educational Codeforces Round 146 补题(A~C)

Educational Codeforces Round 146 补题(A~C)

时间:2023-11-25 12:25:41浏览次数:51  
标签:146 Educational 盒子 int 机器人 long i64 补题 using

Educational Codeforces Round 146 (Rated for Div. 2)

A. Coins

题目大意

给你两个整数nk,问你是否存在两个非负整数xy,使得 2⋅x+k⋅y=n 成立

思路

裴蜀定理秒了,记得开long long

ac代码

#include <bits/stdc++.h>

using namespace std;
using i64  = long long;
const i64 inf = 8e18;
typedef pair<int, int> pii;

void solve() {
    i64 n, k;
    cin >> n >> k;

    if (n % __gcd(2ll, k) == 0 && n >= min(2ll, k)) cout << "YES\n";
    else cout << "NO\n";
}

int main() {
    ios::sync_with_stdio(0); cin.tie(0);

    int t = 1;
    cin >> t;
    while (t --) solve();

    return 0;
}

B. Long Legs

题目大意

一个机器人被放置在一个无限网格的 \((0, 0)\) 单元中。该机器人有可调节长度的腿。最初,它的腿长为 \(1\) 。

假设机器人当前位于 \((x, y)\) 单元,其腿长为 \(m\) 。在一次移动中,它可以执行以下三个动作之一:

  • 跳入 \((x + m, y)\) 单元
  • 跳入 \((x, y + m)\) 单元;
  • 将腿的长度增加 \(1\) ,即设置为 \(m + 1\) 。

机器人到达 \((a, b)\) 单元格的最小移动次数是多少?

思路

枚举\(m\)的最大值

ac代码

#include <bits/stdc++.h>

using namespace std;
using i64  = long long;
const i64 inf = 8e18;
typedef pair<int, int> pii;

void solve() {
    int a, b;
    cin >> a >> b;
    int ans = a + b;
    for (int i = 1; i <= 100000; i ++)
        ans = min(ans, i - 1 + (a + i - 1) / i + (b + i - 1) / i);
    cout << ans << endl; 
    
}

int main() {
    ios::sync_with_stdio(0); cin.tie(0);

    int t = 1;
    cin >> t;
    while (t --) solve();

    return 0;
}

C. Search in Parallel

题目大意

假设你有 \(n\) 个盒子。 \(i\) -th盒子里有无数个颜色为 \(i\) 的球。有时你需要得到一个特定颜色的球,但你又懒得自己动手。

你买了两个机器人来帮你取球。现在你必须给它们编程。为了给机器人编程,你必须构造两个列表 \([a_1, a_2, \dots, a_k]\) 和 \([b_1, b_2, \dots, b_{n-k}]\) ,其中列表 \(a\) 代表分配给第一个机器人的盒子,列表 \(b\) 代表分配给第二个机器人的盒子。从 \(1\) 到 \(n\) 的每个整数必须正好出现在其中一个列表中

当您需要一个颜色为 \(x\) 的小球时,机器人的工作方式如下。每个机器人按照列表中出现的顺序,查看分配给该机器人的盒子。第一个机器人花 \(s_1\) 秒分析盒子里的东西,第二个机器人花 \(s_2\) 秒。只要其中一个机器人找到装有颜色为 \(x\) 的小球的盒子(并分析其内容),搜索就结束。搜索时间是指从搜索开始到其中一个机器人分析完 \(x\) /th盒子中的内容所需的秒数。如果一个机器人分析完了分配给它的所有盒子的内容,那么它就停止搜索。

思路

先根据取出的次数进行排序,如何根据当前查询时间的大小排进数组里

ac代码

#include <bits/stdc++.h>

using namespace std;
using i64  = long long;
const i64 inf = 8e18;
typedef pair<int, int> pii;

void solve() {
    int n, s1, s2;
    cin >> n >> s1 >> s2;
    std::vector<pii> p(n);
    for (int i = 0; i < n; i++) {
        cin >> p[i].first;
        p[i].second = i;
    }

    sort(p.begin(), p.end(), greater<pii>());
    vector<int> ans[2];
    int t1 = s1, t2 = s2;
    for (int i = 0; i < n; i++) {
        int j = i;
        while (t1 <= t2 && j < n) ans[0].push_back(p[j ++].second + 1), t1 += s1;
        while (t2 <= t1 && j < n) ans[1].push_back(p[j ++].second + 1), t2 += s2;
        i = j - 1;
    }

    cout << ans[0].size() << ' ';
    for (auto i : ans[0]) cout << i << ' ';
    cout << '\n' << ans[1].size() << ' ';
    for (auto i : ans[1]) cout << i << ' ';
    cout << endl;
}

int main() {
    ios::sync_with_stdio(0); cin.tie(0);

    int t = 1;
    cin >> t;
    while (t --) solve();

    return 0;
}

D. Balancing Weapons

太难了不想写

标签:146,Educational,盒子,int,机器人,long,i64,补题,using
From: https://www.cnblogs.com/kichuan/p/17852822.html

相关文章

  • Educational Codeforces Round 158 (Rated for Div. 2) A-C
    A大致题意:有一条长度为x的直线公路,最开始你位于0号点并且此时你的油箱装满了油,公路有n个加油站,当你经过加油站的时候你可以在加油站加满油,每走一个单位需要花费1升油量,起始位置和终点没有加油站,请问你的油箱容量至少为多少升才可以够你跑一个来回。解题思路:我们的路径大致是......
  • Educational Codeforces Round 99 (Rated for Div. 2)
    https://codeforces.com/contest/1455很久没有vp了,感觉思维又僵化了A题直接看样例,直接猜是长度。B题首先如果是\(x=\frac{n(n+1)}{2}\),那么就是n否则如果\(x=\frac{n(n+1)}{2}+y\),分成两类y=n,ans=n+2,y<n,我们总可以找到前面一个替换,然后恰好的到n,选取z=n-y即可C题感觉比B......
  • Educational Codeforces Round 156 (Rated for Div. 2) ABCD
    EducationalCodeforcesRound156(RatedforDiv.2)ABCDA.SumofThree题意:给定正整数\(n\),判断是否存在正整数\(a\),\(b\),\(c\)满足:\(a+b+c=n\)。\(a\),\(b\),\(c\)均不是\(3\)的倍数。如存在,输出YES并构造一组方案,否则输出NO。思路:法一:我们分类讨论。根据......
  • LY1464 [ 20231112 NOIP 模拟赛 T4 ] 序列计数
    题意给定\(n,m\)。求:\(a_1+a_2+...+a_m=n\)\(1^{a_1}\times2^{a_2}\times...\timesm^{a_m}\equivx(\bmodm)\)对于\(x\in[1,m)\)满足上述条件的方案数。Sol注意到下面的式子等价于:\(1\times1\times1...\times2\times2...\time......
  • 游戏性能超越i9-12900K!i5-14600K评测:可轻松超频到全核5.6GHz
    一、前言:2000元的甜点处理器此前,我们快科技首发测试了酷睿第14代i9-14900K处理器,这款处理器可以说是Intel7(10nm)制程的巅峰之作。但这块处理器不论功耗、还是价格都非普通玩家能够成承受,相比之下,这款i5-14600K更加符合大众的需求。酷睿第14代i5-14600K处理器基于Intel7制程......
  • LY1467 [ 20231113 NOIP 模拟赛 T3 ] Remember11
    题意给定\(n\)个数,求将她们收尾拼接形成\(11\)的倍数的方案数。Sol数数题。众所周知,是\(11\)的倍数意味着将该数错位相减\(mod11=0\)。注意到偶数位数的数与奇数位数的数的贡献是不同的。考虑将她们分开计算,然后合并。设\(f_{ijk}\)表示前\(i\)个奇数,其中有......
  • Educational Codeforces Round 13 E
    tilian最开始看错了以为是可以任意选择两人or选择一人胜出但题意是可以选择下一个擂主是谁考虑dp的话我们显然需要记录一个state以及当前擂主是谁转移就是dp[state][i]=max(dp[state][i],dp[state(1<<j)][j]*a[i][j]+dp[state(1<<i)]*a[j][i])意义是我们枚举他后一个交......
  • 2020 NOIP 补题
    P7113[NOIP2020]排水系统拓扑排序,但是\(\_\_int128\)。#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'#defineinlinline#defineebemplace_back#definepbpop_back#definemid(l+r>>1)#definelsp<<1#definersp......
  • 14代i5-14600K现身:多核性能提升多达11%
    14代酷睿桌面端还未发售,就陆续在跑分平台上露出。平台规格为Z790主板、32GBDDR5-5200内存,酷睿i5-14600K的单核成绩为2819,多核成绩为16666,对比酷睿i5-13600K,提升幅度分别是5.7%、11.2%。从页面来看,酷睿i5-14600K的基础频率在3.5GHz,最大睿频尚未得知,预测可能高达5.7GHz-5.9GHz。该......
  • 力扣 1460 脑筋急转弯
    1460.通过翻转子数组使两个数组相等对两个数组就行排序。依次对比,有不同则返回false。所有数字一样,那就一定可以翻转使得两个数组相等,翻转次数不同而已,总能达到。当有数字不一样,那一定不会相等。classSolution{public:boolcanBeEqual(vector<int>&target,vector<int>&a......