栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

CodeForces

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CodeForces

一.鸽巢原理(抽屉原理) 1.基础点

把n+1个物体放入n个盒子里,则至少有一个盒子里含有两个或两个以上的物体 。

2.强化点

当n只鸽子飞进m个巢时,必定至少有一个巢中飞进了r只

3.运用

只用于证明是否存在的问题

二.Codeforces Round #276 (Div. 2) A.Factory

1.题目的意思是说:第一天有a个材料,每天多生成a%m个材料,当a%m=0时,停止生产计划。 2.暴力可以直接解,比如m是[1,1e5],那么循环1e6就可。 3.找规律,当a%m为前面出现过的余数时,必回陷入循环,则生产不会停止。如果m次内a%m都不为0,则根据鸽巢原理,从m+1次开始,都会出现[1,m]的数,不会出现0,所以循环m次即可。 4.代码(java,c++)
#include
using namespace std;

int main(){
    int a,m;
    cin >> a >> m;
    bool stop = false;
    for (int i = 0; i < m; i++){
        int tmp = a % m;
        if (tmp == 0){
            stop = true;
            break;
        }
        a += tmp;
    }
    if (stop)   cout << "Yes" << endl;
    else cout << "No" << endl;
    return 0;
}
import java.util.*;
public class D2_276_A{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int m = sc.nextInt();
        boolean stop = false;
        for (int i = 0; i < m; i++){
            int tmp = a % m;
            if (tmp == 0){
                stop = true;
                break;
            }
            a += a % m;
        }
        if (stop) System.out.println("Yes");
        else System.out.println("No");
        sc.close();
    }
}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/291264.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号