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

ABC串讲——328(A~C)

时间:2024-01-19 21:24:01浏览次数:28  
标签:ACCode AC ABC const 串讲 int namespace 328 include

A Not Too Hard

\(N \le 8\) 也是醉了,循环枚举就得了呗?
遍历一遍数组就可以 AC 了。

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

using namespace std;

const int N = 10;
int n, x, a[N], sum;

int main() {
	scanf("%d%d", &n, &x);
	for (int i = 1;i <= n;i++) {
		scanf("%d", &a[i]);
		if (a[i] <= x)
			sum += a[i];
	}
	printf("%d\n", sum);
	return 0;
}

AC记录

B 11/11

我生日哎

数位最多两位,这个数位分解很简单。这里有一种简单粗暴的办法:如果十位是0就让它等于个位就好了,反正不影响结果。

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

using namespace std;

const int N = 110;
int n, d[N], ans;

int main() {
	scanf("%d", &n);
	for (int i = 1;i <= n;i++) {
		scanf("%d", &d[i]);
		for (int j = 1;j <= d[i];j++) {
			int ge = j % 10, shi = j / 10, gei = i % 10, shii = i /10;
			if (shi == 0)
				shi = ge;
			if (shii == 0)
				shii = gei;
			if (ge == shi && shi == gei && gei == shii)
				ans++;
		}
	}
	printf("%d\n", ans);
	return 0;
}

AC记录

C Consecutive

Tips:区间求答案,就想前缀和。
如果相等,就在答案数组上+1,否则就不加

ACCode with 注释
#include <bits/stdc++.h>

using namespace std;

const int N = 3e5 + 10;
int n, q, l, r, cnt[N];
string s;

int main() {
    scanf("%d%d", &n, &q);
    cin >> s;
    s = ' ' + s;  // 前缀和从1开始
    for (int i = 1;i <= n;i++)
        if (s[i] == s[i + 1])  // 相等
            cnt[i] = cnt[i - 1] + 1;  // 记录
        else
            cnt[i] = cnt[i - 1];
    for (int i = 1;i <= q;i++) {
        scanf("%d%d", &l, &r);
        printf("%d\n",  cnt[r - 1] - cnt[l - 1]);
        /*因为上面是s[i + 1]与s[i]相同就记录了,
        所以要用cnt[r - 1]以防在最后一组相同的区间内只有其中一个字符,
        即避免如aabb中的bb在筛查1~3的时候被计算*/
    }
    return 0;
}
[AC记录](https://www.luogu.com.cn/record/135867500 "AC记录")

标签:ACCode,AC,ABC,const,串讲,int,namespace,328,include
From: https://www.cnblogs.com/leo2011/p/17975650

相关文章

  • 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)-......
  • 洛谷题单指南-模拟和高精度-P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布
    原题链接:https://www.luogu.com.cn/problem/P1328题意解读:非常简单的一道题,核心考点就是循环数组以及评分规则的构建。评分规则:甲vs乙,1表示甲赢,-1表示甲输,-0表示平转化为数组:intrule[5][5]={0,-1,1,1,-1,1,0,-1,1,-1,-1,1,0,-1,1,-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玉蟾宫。对于悬线法而言,我们需要理解什么是悬......