zoukankan      html  css  js  c++  java
  • 【题解】csp.ac #63. 除尽(T1-19)

    题目

    csp.ac #63. 除尽(T1-19)

    思路

    (large 2 = 2)
    (large 3 = 3)
    (large 4 = 2 imes2)
    (large 5 = 5)
    (large 6 = 2 imes 3)

    对于任意一个 (a,b),都可以转换成质数(2,3,5)的几次方的乘积。
    (large a = 2^{a_1}3^{a_2}5^{a_3})

    (large b = 2^{b_1}3^{b_2}5^{b_3})

    只要(b_1 leq a_1)(b_2 leq a_2)并且(b_3 leq a_3),那么 (a) 就是 (b) 的倍数。

    Code

    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<iostream>
    #include<algorithm>
    
    inline void read(int &T) {
    	int x=0;bool f=0;char c=getchar();
    	while(c<'0'||c>'9'){if(c=='-')f=!f;c=getchar();}
    	while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
    	T=f?-x:x;
    }
    
    int n,m,a[6],b[6];
    
    int main() {
    	read(n),read(m);
    	for(int i=1,x;i<=n;++i) {
    		read(x);
    		if(x==1) continue;
    		if(x==2) {++a[2];continue;}
    		if(x==3) {++a[3];continue;}
    		if(x==4) {a[2]+=2;continue;}
    		if(x==5) {++a[5];continue;}
    		if(x==6) {++a[2],++a[3];continue;}
    	}
    	for(int i=1,x;i<=m;++i) {
    		read(x);
    		if(x==1) continue;
    		if(x==2) {++b[2];continue;}
    		if(x==3) {++b[3];continue;}
    		if(x==4) {b[2]+=2;continue;}
    		if(x==5) {++b[5];continue;}
    		if(x==6) {++b[2],++b[3];continue;}
    	}
    	for(int i=2;i<=5;++i) {
    		if(b[i]==0) continue;
    		if(a[i]<b[i]) {
    			puts("No");
    			return 0;
    		}
    	}
    	puts("Yes");
    	return 0;
    }
    
  • 相关阅读:
    day 1 认识js
    day2,request对象
    day3
    day 14 函数的嵌套,作用域
    命名空间(名称空间)
    day 13 函数
    day 11(2) 集合
    day 11 字典拆包
    字典
    两周英语函数(记)
  • 原文地址:https://www.cnblogs.com/poi-bolg-poi/p/12812425.html
Copyright © 2011-2022 走看看