首页 > 其他分享 >Competitive Programmer 题解

Competitive Programmer 题解

时间:2023-06-08 22:35:17浏览次数:44  
标签:int 题解 Competitive 数能 num cnt1 Programmer 原数 整除

题目传送门

一道模拟题。

纯模拟肯定不行,考虑优化。\(60 = 2^2 \times 3 \times 5\),也就是说我们判断组合后的数字能否被 \(2\),\(3\),\(10\) 整除即可。

如果这个数能被 \(2\) 整除,那么原数一定会存在偶数;如果这个数能被 \(3\) 整除,那么它的数字和应该也能被 \(3\) 整除;如果这个数能被 \(10\) 整除,那么原数一定存在 \(0\)。

值得注意的是,如果原数只出现过一个 \(0\),那么该数是不能被 \(10\) 和 \(2\) 同时整除的。因此,我们还需要判断一下原数是否有除了 \(0\) 以外的偶数或者 \(2\) 个以上的 \(0\)。

Code

#include <bits/stdc++.h>
#define ll long long
#define INF 1e9
using namespace std;
int n;
signed main() {
    ios :: sync_with_stdio(0);
    cin >> n;
    for (int i = 1; i <= n; i++) {
        string s; // 不要用 int,否则会出错
        int sum = 0, cnt1 = 0, cnt2 = 0; // sum 是数位和,cnt1 是 0 的个数,cnt2 是除了 0 以外的偶数的个数
        bool flag1 = 0, flag2 = 0, flag3 = 0; // flag1 判断能否被 3 整除,flag2 判断能否被 10 整除,flag3 判断能够被 2 整除
        cin >> s;
        for (int i = 0; i < s.size(); i++) {
            int num = s[i] - '0';
            sum += num;
            if (num == 0) cnt1++;
            else if (num % 2 == 0) cnt2++;
        }
        if (sum % 3 == 0) flag1 = 1;
        if (cnt1) flag2 = 1;
        if (cnt2 or cnt1 > 1) flag3 = 1; // 如果有两个 0 也可以
        if (flag1 and flag2 and flag3) cout << "red\n";
        else cout << "cyan\n";
    }
    return 0;
}

标签:int,题解,Competitive,数能,num,cnt1,Programmer,原数,整除
From: https://www.cnblogs.com/xvl-/p/17467864.html

相关文章

  • CF547E Mike and Friends题解
    题目链接温馨提示:做本题之前可以先尝试这个:洛谷P2414阿狸的打字机(是简单版的uwu)。首先,这个题涉及多模式串匹配,首先想AC自动机。但是有个问题:我们如何去计算一个串出现的次数呢?我们先考虑查询一个串\(a\)在串\(b\)中出现的次数。首先,在AC自动机上有一个性质,就是如果......
  • rsa加解密的内容超长的问题解决
    一.现象:     有一段老代码用来加密的,但是在使用keyA的时候,抛出了异常:javax.crypto.IllegalBlockSizeException:Datamustnotbelongerthan117bytes。老代码已经做了分段的加密,应该是已经考虑了加密长度的问题才对。换了另一个线上代码中的keyB,正常加......
  • 【前端跨域】CORS跨域问题解决思路
    目录一、Nginx跨域配置二、Spring项目跨域配置参考资料一、Nginx跨域配置在Nginx中配置跨域请求,主要可以通过设置HTTP响应头部的方式进行。以下是具体实现步骤:在Nginx的配置文件中找到对应location配置块,例如:server{listen80;server_nameexample.com;......
  • [第五届蓝桥杯省赛C++B组]省赛全题目题解
    文章目录快速分支通道酒精与饮料切面条李白打酒史丰收运算打印图形奇怪的分式六角填数蚂蚁感冒地宫取宝小朋友排队1.题目啤酒和饮料算法标签:枚举题目描述:题目答案:题目思路:题目代码:2.题目切面条来源:第五届蓝桥杯省赛C++B组算法标签递推题目描述:题目答案:题目思路:题目代码:3.题目......
  • [第七届蓝桥杯省赛C++B组]省赛全题目题解
    文章目录快速分支通道煤球数目生日蜡烛凑算式快速排序抽签方格填数剪邮票四平方和交换瓶子最大比例煤球数目题目来源:第七届蓝桥杯省赛C++B组算法标签:递推题目描述:题目答案:题目思路:题目代码生日蜡烛题目来源:第七届蓝桥杯省赛C++B组算法标签:枚举,双指针题目描述:题目答案:题目思路:题目代......
  • SMARTPRO 5000U-Plus Programmer 烧写验证
    最新购置了一款周立功烧写器SMARTPRO5000U-PlusProgrammer,与原西尔特SUPERPRO6100对芯片的烧写支持进行对比,操作方式基本相同一、软件安装1.编程器驱动 从光盘获取程序,根据电脑的不同,安装的复杂程度不同,使用64位电脑安装较为复杂,需要修改boot(有的也不需要,我的电脑就不需......
  • Android问题解决:android.util.Base64.encode 导致签名不匹配 SignatureDoesNotMatch
    文章目录前文:遇到问题一问:为什么SignatureDoesNotMatch二问:为什么SignatureDoesNotMatch三问:Signature请求参数为什么多了%0A四问:Signature为什么多了换行五问:android.util.Base64.encode的用法前文:遇到问题在折腾《ESP32-C3入门教程——导读》时,需要对接阿里云物联网平台。想要......
  • P3498 [POI2010]KOR-Beads 题解
    前言:最近在做哈希的题,发现了这道好题,看题解里很多大佬的方法都很巧妙,自己就发一个较为朴素的方法吧。题意:题目传送门给你一个序列,需要求出数k,使划分的子串长度为k时,不同的子串数量最多。还要注意几件事:子串可以反转,比如(1,2,3)看做与(3,2,1)相同。如果不能正好划......
  • P8933 [JRKSJ R7] 技巧性的块速递推 题解
    题目传送门题意:简单来说就是一个涂色游戏。有一个n×m的棋盘需要涂色。每格只能涂黑色或白色两种颜色。横、竖、斜连续3格颜色不能相同。横、竖、斜连续4格颜色不能有3个相同颜色,即只能是2个黑和2个白。最后让你统计出所有符合条件的涂色方式的方......
  • P1751 贪吃虫 题解
    题意:题目传送门在一棵n个结点的树上,有k个贪吃虫去吃食物。每个贪吃虫都走到达食物的唯一路径。当一条贪吃虫通向食物的道路上有另一条贪吃虫,则较远的那只停止移动。多条贪吃虫要进入同一节点时,编号最小的才能进入,其他的停止移动。贪吃虫的移动速度皆为1。一只贪吃虫吃......