zoukankan      html  css  js  c++  java
  • 【CF1243C】 Tile Painting【思维】

    题意:给定长度为n的方块,要求染色,需要满足:当|j-i|>1且n%|j-i|==0时,两格颜色相同,求做多可以染多少种颜色

    题解:求出n的所有质因子

    1、若只有一种质因子,则答案为该质因子

    2、若有两种以上的质因子,则答案为1

    只有一种质因子时,相当于每隔若干个放同种颜色,则可以放p种颜色

    有两种以上的质因子时,选取最小的两个质因子,那么只需要长度lcm(p1,p2)的格子,就可以让所有位置变成相同的颜色,且p1,p2是n的质因子,故lcm(p1,p2)≤n

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #define ll long long
    using namespace std;
    ll n;
    int pn;
    ll p[100001];
    int main()
    {
        scanf("%I64d",&n);ll t=n;
        for(ll i=2;i<=1000000;i++)
        {
          if(n%i==0)
          {
            p[++pn]=i;
            while(n%i==0)n/=i;
          }
          if(n<i)break;
        }
        if(n>1)p[++pn]=n;
        if(pn==1)return !printf("%I64d
    ",p[1]);
        return !printf("1
    ");
    }
  • 相关阅读:
    Admin添加字段
    django admin基础
    user_admin
    admin 模块功能
    todolist项目
    Django进阶项目
    Django进阶
    bolg项目
    EL&jstl
    模拟用户登录,内含验证码验证和request等操作
  • 原文地址:https://www.cnblogs.com/worcher/p/11901288.html
Copyright © 2011-2022 走看看