首页 > 其他分享 >Sumitomo Mitsui Trust Bank Programming Contest 2019 —— B

Sumitomo Mitsui Trust Bank Programming Contest 2019 —— B

时间:2022-12-31 21:45:14浏览次数:54  
标签:Sumitomo 个人 Contest int Programming long ++ add ans

也不知道这比赛为啥要取这么长的名称(
传送门:https://atcoder.jp/contests/sumitrust2019/tasks/sumitb2019_e
哈哈,你被骗了!但网址是真的!

题意

有红绿蓝三种帽子 Red and Blue and Green [Future ?]
第 $ i $ 个人看见前面( $ 1 \sim i - 1 $ )有 $ A_i $ 个人的帽子跟第 $ i $ 个人的帽子颜色一样 好奇第 $ n $ 个人怎么看到第 $ 1 $ 个人?
问有多少种戴法使得所有条件成立。

思路

设三个变量 $ x, y, z $ ,初始为 $ 0 $ 。
遍历 $ n $ 个人,统计 $ x, y, z $ 里多少个跟 $ A_i $ 一样,乘起来。
然后 $ x, y, z $ 优先级 $ x > y > z $ 来 $ +1 $ 然后就没了。

代码

好好体会吧!

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

int a[100005];

int main(){
	int n;
	scanf("%d", &n);
	long long ans = 1;
	int x = 0, y = 0, z = 0;
	for (int i = 0; i < n; i++) {
		scanf("%d", &a[i]);
		int add = 1;
		long long have = 0;
		if (a[i] == x) {
			x += add; add = 0;
			have++;
		}
		if (a[i] == y) {
			y += add; add = 0;
			have++;
		}
		if (a[i] == z) {
			z += add; add = 0;
			have++;
		}
		ans *= have;
		ans %= 1000000007;
	}
	printf("%lld", ans);
	return 0;
}

标签:Sumitomo,个人,Contest,int,Programming,long,++,add,ans
From: https://www.cnblogs.com/AProblemSolver/p/17017403.html

相关文章

  • UNIQUE VISION Programming Contest 2022 Winter(AtCoder Beginner Contest 283)
    A-PowerGivenintegersAandB,printthevalueA^B.基础不解答B-FirstQueryProblem基础不解答C-CashRegisterTakahashiisacashier.Thereis......
  • [AtCoder Regular Contest 077] F: SS (arc077F)
    原题链接​​​https://arc077.contest.atcoder.jp/tasks/arc077_d​​Description定义偶串为这个字符串前一半和后一半相同(abadabad)定义函数f(S)表示在S这个字符串后......
  • [AtCoder Grand Contest 018] D: Tree and Hamilton Path (agc018D)
    原题链接​​​https://agc018.contest.atcoder.jp/tasks/agc018_d​​Description给出一棵N个点带边权的树现在有一个N个点的完全图,一条边x,y的长度是这两点的在树上最短......
  • [AtCoder Grand Contest 071] E: Jigsaw (agc071E)
    原题链接​​​https://agc017.contest.atcoder.jp/tasks/agc017_e​​Description给出N块拼图每块拼图宽度为3,高度为相同的H拼图由3个宽度为1的部分拼接而成,第一部分......
  • AtCoder Beginner Contest 239总结
    由于比赛延期了一个星期,今天才打,恰巧我记错了时间,本来是8:00,我记成9:00,然后·········幸运的是我还是把前四题做出来了(intwentyminutes),由于时间问题,我......
  • Atcoder Beginner Contest 244总结
    这次的Rating凉了………………这次出乎T3意料的考了交互题,虽然很简单,但卡了我好久……T4考了一个神奇的东西,我用骗分大法水了过去……一看排名发现有快3000人得了1000分......
  • Atcoder Beginner Contest 242
    由于我8点半才下课,我只好晚半个小时再打,这次还行,排名3042五道题,秒了前三道,第四道不会,第五道想出正解,结果一直不对,比完后看了一下大佬的代码恍然大悟,但是比赛早已结束...........
  • Educational DP Contest I - Coins(概率DP)
    https://atcoder.jp/contests/dp/tasks/dp_i题目大意:给定n个硬币,n是奇数,每个硬币朝上的概率是ai问我们一半以上的硬币处于正面的概率是多少?SampleInput130.30......
  • AtCoder Beginner Contest 283
    《E-Don'tIsolateElements》dp   刚开始拿到这道题时,我总是在想:第一行翻不翻转对下面情况的影响,在什么情况下要反转,等一系列情况最后我发现:这些情况不如我可......
  • 2022 icpc 济南 (2022 International Collegiate Programming Contest, Jinan Site)
    链接:https://codeforc.es/gym/104076A.Tower枚举最后的取值,然后计算每个数变成这个取值的最⼩次数,去掉最大的\(m\)个,取\(\min\)。C++Code#include"bits/stdc++.......