AtCoder Beginner Contest 228

A - On and Off

思路分析:

  • 如果s < t说明是顺序的,所以只要x小于t并且大于等于s即可。
  • 如果s > t说明是逆序的,所以只要x >= s或者x < t即可。

代码如下:

#include <bits/stdc++.h>
using namespace std;
int main()
{int s, t, x;cin >> s >> t >> x;if (s < t){cout << (s <= x && x < t ? "Yes" : "No") << '\n';}else{cout << (x < t || s <= x ? "Yes" : "No") << '\n';}
}

B - Takahashi’s Secret

思路分析:

  • 这题我想的是dfs跑一遍,如果之前跑过这个点那么就退出即可,dfs一次就加一次。

代码如下:

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
vector<int> e[maxn];
bool vis[maxn];
int ans;
void dfs(int u)
{vis[u] = 1;ans++;for (auto x : e[u]){if (vis[x]){break;}else{dfs(x);}}
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int n, x;cin >> n >> x;for (int i = 1; i <= n; i++){int v;cin >> v;e[i].push_back(v);}dfs(x);cout << ans << endl;return 0;
}

C - Final Day

思路分析:

  • 这个题目其实就是先给你每个同学前三天的成绩,问你四天考试结束之后是否能够获得第K名。
  • 首先我们贪心,对于当前的同学,我们让他最后一天得到300分,其他的同学得到0分,这样的话我们就可以判断了,假如我都给这位同学300分了,其他同学都给的是0分,他如果都比第K名同学分数少的话,那么他就不可能得到第K名。

代码如下:

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int n, k;cin >> n >> k;k--;vector<int> sum(n);vector<int> val(n);for (int i = 0; i < n; i++){int tmp = 0;int a, b, c;cin >> a >> b >> c;tmp = a + b + c;sum[i] = tmp;val[i] = tmp + 300;}sort(sum.begin(), sum.end(), greater<int>());for (int i = 0; i < n; i++){if (val[i] >= sum[k]){cout << "Yes" << endl;}elsecout << "No" << endl;}return 0;
}

D - Linear Probing

思路分析:

  • 这题一开始没想到是用并查集,就用vector乱搞了2发RE。
  • 用并查集怎么做呢?首先并查集维护的是下一个-1出现的位置,那么在我们每次1操作中,把当前的位置替换后,我们就让它的下标加上1再模上1 << 20就可以得到下一个-1出现的位置了,这样的话时间复杂度O(1)。

代码如下:

#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll maxn = 1 << 20;
ll val[maxn];
ll fa[maxn];
void init()
{for (ll i = 0; i < maxn; i++){fa[i] = i;val[i] = -1;}
}
ll find(ll x)
{return x == fa[x] ? fa[x] : fa[x] = find(fa[x]);
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);init();ll q;cin >> q;while (q--){ll opr, x;cin >> opr >> x;if (opr == 1){ll y = find(x % maxn);val[y] = x;fa[y] = (y + 1) % maxn;}else if (opr == 2){cout << val[x % maxn] << endl;}}return 0;
}

AtCoder Beginner Contest 228相关推荐

  1. Atcoder TOYOTA SYSTEMS Programming Contest 2021(AtCoder Beginner Contest 228) B - Takahashi‘s Secret

    题目链接:B - Takahashi's Secret (atcoder.jp) Problem Statement Takahashi has N friends. They have nickna ...

  2. Atcoder TOYOTA SYSTEMS Programming Contest 2021(AtCoder Beginner Contest 228) C - Final Day

    题目链接:C - Final Day (atcoder.jp) Problem Statement N students are taking a 4-day exam. There is a 300 ...

  3. TOYOTA SYSTEMS Programming Contest 2021(AtCoder Beginner Contest 228) ABCD

    A 题意: 有一个开关,每天s点开,t点关(可能在第2天或第n天),判断x点时开着还是关着. 思路: 按照是否需要隔夜分个类. #include<bits/stdc++.h> using ...

  4. AtCoder Beginner Contest 202 D - aab aba baa(组合计数,字典序)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Problem 有 AAA 和 aaa,BBB 个 bbb ,可以使用这 A+BA+BA+B 个字符任 ...

  5. AtCoder Beginner Contest 197 题解(A ~ F)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Rotate B - Visibility C - ORXOR D - Opposite ...

  6. AtCoder Beginner Contest 198 (A ~ F)题解

    目录 A. Div B. Palindrome with leading zeros C. Compass Walking D. Send More Money E. Unique Color F. ...

  7. AtCoder Beginner Contest 215 G - Colorful Candies 2

    AtCoder Beginner Contest 215 G - Colorful Candies 2 有n个糖果,每个糖果有着一个颜色a[i],每次拿k个糖果期望拿到E(x)个不同颜色的糖果,求出k ...

  8. AtCoder Beginner Contest 215 F - Dist Max 2

    AtCoder Beginner Contest 215 F - Dist Max 2 平面上有一系列的点(xi,yi)(x_i,y_i)(xi​,yi​),定义两点(xi,yi),(xj,yj)(x ...

  9. AtCoder Beginner Contest 215 E - Chain Contestant

    AtCoder Beginner Contest 215 E - Chain Contestant 给出一个只包括A~J的字符串,定义一种子序列为:在这个子序列中,相同的字符必定连续出现,求出这样的子 ...

  10. AtCoder Beginner Contest 204 F Hanjo 2

    AtCoder Beginner Contest 204 F Hanjo 2 H宽,W长的二维平面上,用1 * 1或者2 * 1的地砖来铺,要求铺满,求出方案数. 数据范围H <= 6, W & ...

最新文章

  1. centos下kong源码安装
  2. 对于有A[0…N]有序的数组,判断是否存在A[i]=I 如果存在的话返回Index,
  3. 远程连接Kali Linux使用PuTTY实现SSH远程连接
  4. 第二章:2.6 LTI系统特性与单位冲击信号的关系
  5. 0320互联网新闻 | 网易《明日之后》全球营收突破1.25亿美元;阿里AI labs宣布投入1亿元进行方言保护...
  6. 【朴灵评注】JavaScript 运行机制详解:再谈Event Loop
  7. Unity3D研究院之Android同步方法读取streamingAssets
  8. A8U公司的老程序猿的悲惨下场
  9. css基础选择器 1204
  10. 常见的mysql权限设置
  11. POJ2146 Confusing Login Names [最小字符串编辑距离]
  12. K8s中nodePort、port、targetPort、hostPort介绍
  13. 当Myeclipse或者Eclipse出现launching client
  14. 《研发企业管理——思想、方法、流程和工具》——第1章 企业管理基本理念 1.1 企业的根本目标及其内涵...
  15. 电音(4)House类电音
  16. python中使用pip提示: Fatal error in launcher: Unable to create process using
  17. 【Git】使用git上传代码到gitee
  18. android-历史版本
  19. python 神经网络可以输出连续值_dqn 神经网络输出
  20. Linux下执行预定的任务Atd or Crond

热门文章

  1. 定义图书类Book,具有属性账号id,铭name.作者author和价格price,在创建图书对象时要求通过构造器进行创建,- -次性将四个属性全部赋值
  2. 测试记录2:APM32对比HK32
  3. Task ‘bulid‘ not found in root project ‘cas‘. Some candidates are: ‘build‘.
  4. UE4 Text Render 中文字体制作
  5. 提升bitcomet下载速度的方法
  6. 技巧:如何提高git下载速度
  7. 雷曼 疯狂兔子 java_《雷曼:疯狂兔子》详细流程攻略+个人心得分享
  8. 600、000、002、200、300、400等开头的股票代表什么?
  9. 2018 年计算机语言排行榜,TIOBE:2018年11月编程语言排行榜
  10. 微信公众号自动回复消息跳转小程序