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);
    	}
    }
    
  • 相关阅读:
    get和post的区别
    关于webWorker的理解和简单例子
    JavaScript停止事件冒泡和取消事件默认行为
    深入理解js构造函数
    js之yeild
    文件组织方式
    HTML5新增的标签和属性归纳
    css3新增属性
    CSS3 transition介绍
    Mysql安装
  • 原文地址:https://www.cnblogs.com/wangqianyv/p/13579725.html
Copyright © 2011-2022 走看看