A - Shampoo

题意: 在高桥家中,有三个人:高桥、他的父亲和他的母亲。他们每晚都在浴室洗头发。按照他们的次序,高桥的父亲、母亲和高桥自己分别使用A、B和C毫升的洗发水。今天早上,瓶子里有V毫升的洗发水。在不重新添加洗发水的情况下,谁会第一个用完洗发水洗头发?

思路: ​ 分类讨论即可, 如果一轮用不完 就取余再判断 如果一轮用得完就去直接判断

AC代码:

#include<bits/stdc++.h>using namespace std;typedef long long LL;const int N = 100010, INF = 0x3f3f3f3f, Mod = 998244353;
const int dx[4] = {1, 0, -1, 0};
const int dy[4] = {0, -1, 0, 1};int v, a, b, c;int main()
{cin >> v >> a >> b >> c;int sum = a + b + c;int x = v % sum;if(x >= 0 && x < a) cout << "F";else if(x >= a && x < a + b) cout << "M";else if(x >= a + b && x < a + b + c) cout << "T";return 0;
}

B - Hit and Blow

题意: 给定两个整数序列,长度都为N:A=(A1, A2, …, AN)和B=(B1, B2, …, BN)。序列A的所有元素都不相同。序列B的所有元素也不相同。
输出以下两个值:
在两个序列A和B中相同位置上包含的整数的数量。换句话说,整数i满足Ai = Bi的数量。
在两个序列A和B中不同位置上出现的相同整数的数量。换句话说,整数对(i, j)满足Ai = Bj且i ≠ j的数量。

思路:一开始就直接根据题目模拟了,但是怕wa,没想到能ac,所以后面又使用了map函数查重的写法,可以防止题目条件变大的tle情况。

AC代码:

1.
#include<bits/stdc++.h>using namespace std;typedef long long LL;const int N = 1010, INF = 0x3f3f3f3f, Mod = 998244353;
const int dx[4] = {1, 0, -1, 0};
const int dy[4] = {0, -1, 0, 1};int n;
LL a[N], b[N], ans, res;int main()
{cin >> n;for(int i = 1; i <= n; i ++) cin >> a[i];for(int j = 1; j <= n; j ++) cin >> b[j];for(int i = 1, j = 1; i <= n, j <= n; i ++, j ++){if(a[i] == b[j]) ans ++;}for(int i = 1; i <= n; i ++){for(int j = 1; j <= n; j ++){if(a[i] == b[j] && i != j){res ++;}}}cout << ans << endl << res;return 0;
}
2.
#include<bits/stdc++.h>using namespace std;typedef long long LL;const int N = 1010, INF = 0x3f3f3f3f, Mod = 998244353;
const int dx[4] = {1, 0, -1, 0};
const int dy[4] = {0, -1, 0, 1};int n;
LL a[N], b[N], ans, res;
map<int, int> mp;
bool st[N];int main()
{cin >> n;for(int i = 1; i <= n; i ++){cin >> a[i];mp[a[i]] ++;}for(int i = 1; i <= n; i ++){cin >> b[i];if(a[i] == b[i]){st[i] = 1;ans ++;}if(!st[i] && mp[b[i]]){res ++;}}cout << ans << endl << res;return 0;
}

C - Collision 2

题意: 在一个平面上有N个人。第i个人位于(Xi, Yi)。所有人的位置都不相同。我们有一个长度为N的字符串S,它由L和R组成。
如果Si = R,则第i个人面向右;如果Si = L,则第i个人面向左。所有人同时开始朝着他们面对的方向行走。在这里,右和左对应于正x方向和负x方向。

我们说,当两个朝相反方向走的人走到同一个位置时,就会发生碰撞。如果所有人都无限期地继续行走,会不会有碰撞?

思路:因为数据很大,不能直接的去模拟过程,所以 把y轴哈希存放一下,然后vecotr遍历每个y轴上的直线,然后把点排序,再用哈希存放一下每个点的方向是左还是右,再排个序,只要在出现了比他下标大的向左之前出现过比他下标小的向右就会发生碰撞了。

AC代码:

#include <bits/stdc++.h>using namespace std;const int N = 200010;int x[N], y[N];
map<int ,int> mo;
map<pair<int ,int >, int> m1;
vector<int> v[N];string s1;
int n, i, j, t, cnt = 1, flag = 0;int main()
{cin >> n;for(i = 0; i < n; i ++){cin >> x[i] >> y[i];if(mo[y[i]] == 0){mo[y[i]] = cnt ++;}v[mo[y[i]]].push_back(x[i]);m1[{x[i], mo[y[i]]}] = i;} cin >> s1;for(i = 1; i < cnt; i ++){int f1 = 0;sort(v[i].begin(), v[i].end());for(j = 0; j < v[i].size(); j ++){int idx = m1[{v[i][j], i}];if(s1[idx] == 'R'){f1 = 1;}else{if(f1 == 1)flag = 1;}}if(flag == 1) break;}if(flag == 1){cout << "Yes" << endl;}else {cout << "No" << endl;}return 0;
}

零点工作室暑假集训(AtCoder--ABC243)相关推荐

  1. 零点工作室暑假集训(AtCoder--ABC310)

    A - Order Something Else 题意: Takahashi想在餐馆里点一种名为AtCoder Drink的饮料.它的普通价格是P日元. 他还有一张折扣券,可以以更低的价格Q日元点这种 ...

  2. 零点工作室暑假集训(AtCoder--ABC288)

    A - Many A+B Problems 题意:计算n次A+B. 思路:模拟即可. 代码: #include <iostream> #include <algorithm> ...

  3. 零点工作室暑假集训(AtCoder--ABC308)

    A - New Scheme 题意:输出Yes的数要满足3种情况 1.升序的情况,也就是后面的数大于前面的 2.满足范围在100~675之间 3.满足可以整除25 思路:直接3个判断条件即可 AC代码 ...

  4. 零点工作室暑假集训(AtCoder--ABC266)

    A - Middle Letter 题意:总是输出中间的字符,字符数量为奇数 思路:计算出来字符串的长度,因为是长度为奇数的字符串,输出下标为( len + 1 ) / 2 的字符即可(这里字符串下标 ...

  5. 零点工作室暑假集训(牛客练习赛113 )

    A - 小红的基环树 题意:定义基环树为n个节点.n条边的.没有自环和重边的无向连通图.定义一个图的直径是任意两点最短路的最大值.小红想道,n个节点构成的所有基环树中,最小的直径是多少? 思路:特判一 ...

  6. 零点工作室暑假集训(AtCoder--ABC248)

    A - Lacked Number 题意:给定一个包含有长度为9的数字字符串S.字符串S中的所有数字都是从0到9中恰好出现一次,除了一个数字缺失.请打印出S中缺失的唯一数字. 思路: 一开始想到了记录 ...

  7. 零点工作室暑假集训(AtCoder--ABC259)

    A - Growth Record 题意:主人公N岁的时候身高为T,已知他[1,X]期间每年长D,后面不长个子,问M岁的时候他身高多少 思路:0岁的身高是T - X * D,然后在分情况讨论即可 AC ...

  8. 零点工作室暑假集训(AtCoder--ABC280)

    A - Pawn on a Grid 题意:就是让你求出这个n行n列中'#'的个数 思路:直接枚举就行了. AC代码: #include <iostream> using namespac ...

  9. 零点工作室暑假集训(AtCoder--ABC277)

    A - ^{-1} 思路:直接样例就行了 AC代码: #include <iostream> #include <algorithm> using namespace std; ...

  10. 零点工作室暑假集训(AtCoder--ABC278)

    A - Shift 题意:给定一个数 N 和 K 将长度为 N 数组的前 K 项删除后输出后面内容,后面补零! AC代码: #include <iostream> using namesp ...

最新文章

  1. html5自带表单验证-美化改造
  2. 线性Transformer应该不是你要等的那个模型
  3. 【笔记】spring定时器时间配置实例
  4. 从业务需求抽象成模型解决方案
  5. python启动多个进程_Python程序中的进程操作--—--开启多进程
  6. 数据库笔记12:创建与管理触发器
  7. 【Elasticsearch】Fielddata is disabled on text field fielddata=true
  8. 原码,反码,补码的概念
  9. codeforces 665A Buses Between Cities
  10. 《越狱》的中国隐秘流行
  11. wps云文档 word文档发送错误报告怎么办?
  12. 新浪微博技术架构分析
  13. NOD32升级账号更新器 [ C# | NOD32 | Eset ]
  14. java小学生加减法_用java代码写随机加法算术题。 这些知识你不一定知道
  15. linux dns访问日志内容格式,谢烟客---------Linux之DNS请求流程及资源记录定义
  16. 计算机开机按f1,电脑开机要按f1怎么解决 开机按F1的各种解决方法整理
  17. 免费打工仔:一个完善的ActiveX Web控件教程
  18. node搭建web服务器时,图片显示不出来
  19. 微内核是什么?宏内核是什么?一文带你了解操作系统内核架构!
  20. STM32F1与STM32CubeIDE编程实例-光断续传感器驱动

热门文章

  1. C语言 输入字符 ,判断是否为字母(包括大小写)
  2. 论文精翻《Cognitive Computing Programming Paradigm: A Corelet Language for Composing Networks of ...》
  3. python实验收获与反思 100字_考试后的反思100字作文
  4. 补码除法(加减交替法)
  5. 自动驾驶—什么是运行设计域(ODD)?
  6. excel分组求最小值
  7. APP软件Android和iOS两个平台软件著作权需要分开登记吗?
  8. 计算机应用基础的认识和计划,计算机应用基础学习计划..doc
  9. word 文字型窗体域 4609:字符串太长
  10. springboot批量修改的方式(sql修改语句)