zoukankan      html  css  js  c++  java
  • Codeforces Round #698 (Div. 2) (思维)

    A. Nezzar and Colorful Balls


    题意:给你一个非递减序列的球,现在要给每个球涂色,要求每种颜色的球的值是单调递增的,问最少用多少种颜色
     
    解题思路:根据题意,我们不难看出相同权值的小球不可能为同一颜色,我们只需要找到权值相同且数量最多的小球的数量就行,由于球的权值是非递减的,换句话说权值相同的球是挨在一起的,我们只需要判断连续的相同的球的数量最大是多少就行
    Code:

    #include<bits/stdc++.h>
    using namespace std;
    int a[105];
    int main()
    {
    	int t,n;
    	scanf("%d",&t);
    	while(t--) {
    		scanf("%d",&n);
    		for(int i = 1;i <= n; ++i) scanf("%d",&a[i]);
    		a[0] = a[1];
    		int ans = 1;
    		int loc = 0,lock = a[1];
    		for(int i = 1;i <= n; ++i) {
    			if(a[i] == lock)
    				loc++;
    			else {
    				loc = 1;
    				lock = a[i];
    			}
    			ans = max(ans,loc);
    		}
    		printf("%d
    ",ans);
    	}
    	return 0;
    }
    

    B. Nezzar and Lucky Number


    题意:判断是否有由一个或者多个包含幸运的数字d的数组成a[i],这个幸运数字d选取[1,9]
     
    解题思路:很明显当(a[i] >= 10 imes d)时,一定存在,否则我们就分类讨论,详情请看代码,(代码由些许暴力)
    Code:

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    ll t,q,d;
     
    int main()
    {
    	ll k;
    	scanf("%lld",&t);
    	while(t--) {
    		scanf("%lld%lld",&q,&d);
    		for(int i = 0;i < q; ++i) {
    			scanf("%lld",&k);
    			ll kk = k % 10;
    			if(k >= d * 10LL) {
    				puts("YES");
    			}
    			else {
    				if(d == 1)
    					puts("YES");
    				else if(d == 2) {
    					if(k % 2 == 0)
    						puts("YES");
    					else
    						puts("NO");
    				}
    				else if(d == 3) {
    					if(kk == 3 || kk == 6 || kk == 9 || (k >= 12 && kk == 2) || (k >= 15 && kk == 5) || (k >= 18 && kk == 8) || (k >= 21 && kk == 1) || (k >= 24 && kk == 4) || (k >= 27 && kk == 7) || (k >= 30 && kk == 0))
    						puts("YES");
    					else
    						puts("NO");
    				}
    				else if(d == 4) {
    					if(kk == 4 || kk == 8 || (k >= 12 && kk == 2)|| (k >= 16 && kk == 6) || (k >= 20 && kk == 0))
    						puts("YES");
    					else
    						puts("NO");
    				}
    				else if(d == 5) {
    					if(kk == 0 || kk == 5)
    						puts("YES");
    					else
    						puts("NO");
    				}
    				else if(d == 6) {
    					if(kk == 6 || (k >= 12 && kk == 2) || (k >= 18 && kk == 8) || (k >= 24 && kk == 4) || (k >= 30 && kk == 0))
    						puts("YES");
    					else
    						puts("NO");
    				}
    				else if(d == 7) {
    					if(kk == 7 || (k >= 14 && kk == 4) || (k >= 21 && kk == 1) || (k >= 28 && kk == 8) || (k >= 35 && kk == 5) || (k >= 42 && kk == 2) || (k >= 49 && kk == 9) || (k >= 56 && kk == 6) || (k >= 63 && kk == 3) || (k >= 70 && kk == 0))
    						puts("YES");
    					else
    						puts("NO");
    				}
    				else if(d == 8) {
    					if(kk == 8 || (k >= 16 && kk == 6) || (k >= 24 && kk == 4) || (k >= 32 && kk == 2) || (k >= 40 && kk == 0))
    						puts("YES");
    					else
    						puts("NO");
    				}
    				else if(d == 9) {
    					if(kk == 9 || (k >= 18 && kk == 8) || (k >= 27 && kk == 7) || (k >= 36 && kk == 6) || (k >= 45 && kk == 5) || (k >= 54 && kk == 4) || (k >= 63 && kk == 3) || (k >= 72 && kk == 2) || (k >= 81 && kk == 1) || (k >= 90 && kk == 0))
    						puts("YES");
    					else
    						puts("NO");
    				}
    			}
    		}
    	}
    	
    	return 0;
    }
    

    看到一个神奇的代码:

    main(q,d,x){for(scanf("%*d");~scanf("%d%d",&q,&d);)while(q--){
    scanf("%d",&x);while(x>d&&x<d*10&&x%d)x-=10;puts(x<d?"NO":"YES");}}
    
  • 相关阅读:
    atitit.解决net.sf.json.JSONException There is a cycle in the hierarchy
    atitit.查看预编译sql问号 本质and原理and查看原生sql语句
    atitit.基于http json api 接口设计 最佳实践 总结o7
    atitit.spring3 mvc url配置最佳实践
    Atitit.列表页面and条件查询的实现最佳实践(2)翻页 分页 控件的实现java .net php
    atitit。自定义uml MOF EMF体系eclipse emf 教程o7t
    atitit.编辑表单的实现最佳实践dwr jq easyui
    Atitit. 提升开发效率与质量DSL ( 3) 实现DSL的方式总结
    atitit.设计模式(2) 查表模式/ command 总结
    Atitit. 提升软件开发效率and 开发质量java 实现dsl 4gl 的本质and 精髓 O725
  • 原文地址:https://www.cnblogs.com/Mangata/p/14347745.html
Copyright © 2011-2022 走看看