zoukankan      html  css  js  c++  java
  • CF1209A

    所谓染色,并使同颜色数都能被当前颜色中最小的数整除

    也就是说,把能被某个数整除的所有数放在一起为一组,问共有几组

    开始我想写个并查集但是很懒,看数据范围小的可怜,那我们写个暴力看看

    因为每组的共因数都是本组最小,那就先从小到大排序

    枚举每个没被标记过的数,从这个数开始往后找,碰到能被他整除的就打标记

    然后计数器加一

    最后输出就好了

    #include<iostream>
    #include<cstdlib>
    #include<cstring>
    #include<cstdio>
    #include<algorithm>
    #define maxn 100010
    
    using namespace std;
    
    int n,a[maxn],vis[maxn],sum;
    
    int main(){
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++){
    		scanf("%d",&a[i]);
    	}
    	sort(a+1,a+n+1);
    	for(int i=1;i<=n;i++){
    		if(!vis[i]){
    //		    vis[i]=1;
    		    sum++;	
    		}
    		for(int j=i+1;j<=n;j++){
    			if(a[j]%a[i]==0)
    			vis[j]=1;
    		}
    	}
    	cout<<sum;
    	return 0;
    }
    

    请各位批评指正

    这道题不会真有人来看题解吧

  • 相关阅读:
    python之类的详解
    flask中cookie和session介绍
    Flask数据库的基本操作
    CSRF原理
    Ajax.2
    浅谈Ajax
    Django中的缓存机制
    Django简介
    HTTP协议
    web应用
  • 原文地址:https://www.cnblogs.com/KnightL/p/13935558.html
Copyright © 2011-2022 走看看