首页 > 其他分享 >ABC串讲——332(A~C)

ABC串讲——332(A~C)

时间:2024-01-19 21:47:01浏览次数:35  
标签:ABC 串讲 int else 332 mug need logo gls

A Online Shopping

模拟计算就得了。

ACCode
#include <bits/stdc++.h>

#define log printf

using namespace std;

const int N = 10010;
int n, s, k, p[N], q[N], sum;

int main() {
    scanf("%d%d%d", &n, &s, &k);
	for (int i = 1; i <= n;i++)
        scanf("%d%d", &p[i], &q[i]), sum += p[i] * q[i];
	if (sum < s) sum += k;
	log("%d\n", sum);
	return 0;
}

AC记录

B Glass and Mug

还是模拟,建俩变量模拟一遍得了。

ACCode
#include <bits/stdc++.h>

#define log printf

using namespace std;

int k, g, m, gls, mug;

int main() {
    scanf("%d%d%d", &k, &g, &m);
    for (int i = 0;i < k;i++) {
        if (gls == g) gls = 0;
        else
			if (mug == 0) mug = m;
            else {
				int mug_can = mug, gls_need = g - gls;
				if (mug_can > gls_need) gls = g, mug -= gls_need;
                else if (mug_can < gls_need) mug = 0, gls += mug_can;
                else gls += gls_need, mug -= mug_can;
			}
    }
	log("%d %d\n", gls, mug);
	return 0;
}

AC记录

C T-shirts

又双叒叕是模拟。

ACCode
#include <bits/stdc++.h>

#define log printf

using namespace std;

int m, n, plain, logo, logo_have;
string s;

int main() {
	cin >> n >> m >> s;
	plain = m;
	for (int i = 0; i < n; i++) {
		if (s[i] == '0') {
			plain = m;
			logo_have = logo;
			continue;
		}
		if (s[i] == '1') {
			if (plain > 0)
				plain--;
			else {
				if (logo_have > 0)
					logo_have--;
				else
					logo++;
			}
		} else {
			if (logo_have > 0)
				logo_have--;
			else
				logo++;
		}
	}
	log("%d\n", logo);
	return 0;
}

AC记录

标签:ABC,串讲,int,else,332,mug,need,logo,gls
From: https://www.cnblogs.com/leo2011/p/17975694

相关文章

  • ABC串讲——328(A~C)
    ANotTooHard\(N\le8\)也是醉了,循环枚举就得了呗?遍历一遍数组就可以AC了。ACCode#include<bits/stdc++.h>usingnamespacestd;constintN=10;intn,x,a[N],sum;intmain(){ scanf("%d%d",&n,&x); for(inti=1;i<=n;i++){ sc......
  • ABC串讲——337(A~C)
    Aab\(S\)长度不超过100,随便搞~遍历一遍,如果一个是“a”且下一个字符是“b”就有,否则没有。ACCode#include<bits/stdc++.h>#definelogprintfusingnamespacestd;intn,len;strings;intmain(){ scanf("%d",&n); cin>>s; len=s.size(); for(inti......
  • AtCoder ABC 273 复盘
    AARecursiveFunction模拟,递归、递推、累乘都可以。我用的累乘。ACCodeBBrokenRounding也是模拟,每次将\(X\leftarrowX\div10^{i-1}\)后判断\(X\bmod10\)是否\(\geq5\),若是,\(X\leftarrowX+10\);若不是,不进行操作。最后再将\(X\div10\)输出。ACCodeC(K+1)-......
  • abc227F - Treasure Hunting
    abc227F依次钦定x为路径上的第k大的数,然后dp即可。#include<cstdio>#include<algorithm>#include<cstring>#include<map>#include<queue>#include<bitset>#include<cmath>#include<set>#include<unordered_map>#definefo(i,......
  • ABC245G
    似乎是经典套路?先不考虑颜色限制,那么就直接把\(l\)个关键点当作起点跑多源最短路就行了。现在考虑颜色限制,有一种暴力的想法是枚举所有颜色,只把这种颜色的点当作起点,然后跑dijkstra,然后更新颜色不为这个的终点。发现这样终点就被更新了很多次,考虑优化。考虑枚举颜色的每个二......
  • AtCoder ABC 270 复盘
    A1-2-4TestACCodeBHammerACCodeCSimplepathACCodeDStones完全背包的应用。ACCodeEAppleBasketsonCircle有一点数学,又有一点贪心,还有二分。首先将每个篮子取走\(\min_{1\leqi\leqn}(A_i)\)个苹果,然后再不断扫描数组,按照题意取走苹果。ACCode......
  • AtCoder ABC 267 复盘
    ASaturdayACCodeBSplit?ACCodeCIndex×A(Continuousver.)本题可以采用类似滑动窗口的做法,使得时间复杂度降至\(O(n+m)\)。ACCodeDIndex×A(NotContinuousver.)本题是典型的01背包问题,只需要对值进行相应的修改即可。ACCodeEErasingVertices2本题......
  • ABC270H add 1
    题解里面有用鞅的停时定理的做法,但我现在既不会离散时间鞅也不记得这个定理是啥了,所以搞点阳间的做法。考虑列出操作次数的概率生成函数\(\mathscr{P}(x)\),也就是从初始状态开始操作\(i\)次后第一次达到终止状态的概率为\([x^i]\mathscr{P}(x)\),那么答案就是\(\mathscr{P}'(......
  • AtCoder ABC 279 复盘
    AwwwvvvvvvACCodeBLOOKUPACCodeCRANDOMACCodeDFreefall分析一下样例1,可以发现答案存在一个\(\sqrt{g}\),然后就联想到三分。这里图像是开口朝上的。注意要开longlong!(但我的代码需要__int128才行,玄学)ACCodeECheatingAmidakuji分析过程,可以发现第\(i\)次......
  • ABC311_g One More Grid Task 题解
    题目链接:Atcoder或者洛谷对于解决二维区间内的最值类型问题,我们常常有一类特别好用的方法,就是悬线法,它可以看做是单调栈的子集,但更加好理解和书写。对于悬线法,我们有一个常见的模型,找出面积最大的符合题意的最大的矩形:例题P4147玉蟾宫。对于悬线法而言,我们需要理解什么是悬......