zoukankan      html  css  js  c++  java
  • Codeforces Round #615 (Div. 3)

    C - Product of Three Numbers

    题意:

    将一个数分解为三个互不相同且都大于2的数。

    代码

    main(void)
    {
    	int t=read();
    	while(t--)
    	{
    		int n=read();
    		int a=1,b=1,c=1;
    		for(int x=2;x*x<n;x++)
    		{
    			if(n%x==0)
    			{
    				a=x;
    				break;
    			}
    		}
    		n=n/a;
    		for(int x=a+1;x*x<n;x++)
    		{
    			if(n%x==0)
    			{
    				b=x;
    				c=n/x; 
    				break;
    			}
    		}
    		if(a>=2&&b>=2&&c>=2)
    		{
    			printf("YES
    ");
    			printf("%d %d %d
    ",a,b,c);
    		}
    		else
    		{
    			printf("NO
    ");
    		}
    	}
    }
    

    D - MEX maximizing

    题意:

    将一个数组的一些数加减x,使数组中未出现的最小数最大

    分析:

    一个数加减任意个x,可以看做是其模x的数加减任意个数,这样就可以将数组的结构用t%x的个数来表示。ans想要增减,必须有ans%x的数通过增减x来到达ans的位置。ans初值为0,判断ans是否可以增加,递推可得所有的ans。递推过程中,如果ans的模x的次数与数组中此模值的个数可以相抵,即数组中ans%x的个数比递推中ans经过ans%x的次数大,那么ans增加。

    代码

    
    int a[500000];
    map<int,int>mp; 
    main(void)
    {
    	int q=read();
    	int x=read();
    	int ans=0;
    	while(q--)
    	{
    		int t=read();
    		a[t%x]++;
    		while(a[ans%x])
    		{
    			a[ans%x]--;
    			ans++;
    		}
    		printf("%d
    ",ans);
    	}
    }
    
  • 相关阅读:
    简单排序算法
    线程池第二篇:线程池相关类
    枚举的使用
    线程池第一篇:线程池相关接口
    mysql InnoDB引擎与MyISAM引擎区别及索引原理
    待重写
    mysql登录命令
    浅拷贝、深拷贝
    grpc:What is gRPC
    protocol buffer第一篇:语法介绍
  • 原文地址:https://www.cnblogs.com/wangqianyv/p/13579725.html
Copyright © 2011-2022 走看看