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

    A. Nastya and Rice

    签到题

    判断谷物总重量的范围和包重量范围是否有交叉

    #include<bits/stdc++.h>
    
    using namespace std;
    int t,n,a,b,c,d;
    
    int main(){
    	cin>>t;
    	while(t--){
    		cin>>n>>a>>b>>c>>d;
    		if(n*(a+b)<c-d || n*(a-b)>c+d){
    			puts("No");
    		}
    		else puts("Yes");
    	}
    
    	return 0;
    }
    

    B. Nastya and Door

    题意

    在[l,l+k-1]范围内寻找山峰的个数最多且l最小

    使用前缀和统计[1,i]的山峰个数,然后枚举比较得山峰个数最多且l最小的范围

    #include<bits/stdc++.h>
    
    using namespace std;
    typedef long long ll;
    const int N = 2e5+100;
    ll t,n,k,a[N],b[N];
    
    int main(){
    	cin>>t;
    	while(t--){
    		cin>>n>>k;
    		for(int i=1;i<=n;i++) cin>>a[i];
    		int l=-1,ans=-1,j=0;
    		for(int i=2;i<=n;i++){
    			if(a[i]>a[i-1]&&a[i]>a[i+1]&&i!=n){
    				b[i]=b[i-1];
    				b[i+1]=b[i-1]+1;
    				i++;
    			}
    			else b[i]=b[i-1];
    		}
    		for(int i=1;i+k-1<=n;i++){
    			if(b[i+k-1]-b[i+1]>ans){
    				ans=b[i+k-1]-b[i+1];
    				l=i;
    			}
    		}
    		cout<<ans+1<<' '<<l<<'
    ';
    	}
    
    	return 0;
    }
    
    

    C. Nastya and Strange Generator

    题意比题难系列:

    由题中所给规则向一个空数组中添加数,问题中所给的数组是否满足该规则

    添加规则

    r数组本身为空,r[i]表示自身及右边第一个为空的位置
    count数组如果该位置已经被选过置为0,没被选过表示在r数组中出现的次数
    假设n=5,r[]={1,2,3,4,5},count[]={1,1,1,1,1}
    1.向里面添加1,count值都相等,1的位置可以随便选,假设选在3,此时r[]={1,2,4,4,5},count[]={1,1,0,2,1}
    2.向里面添加2,count[4]最大,所以2的位置选在4,此时r[]={1,2,5,5,5},count[]={1,1,0,0,3}
    3.向里面添加3,count[5]最大,所以3的位置选在5,此时r[]={1,2,* ,* ,* },(* 表示不存在),count[]={1,1,0,0,0}
    4.向里面添加4,count[1]= =count[2],所以选1或2都可以,假设选在1,r[]={2,2,* ,* ,* ,},count[]={0,2,0,0,0};显而易见5的位置在第二个
    最后再结合题目最后所给步骤,可以得出 a[i+1]= =a[i]+1,或a[i+1]<a[i]

    #include<bits/stdc++.h>
    
    using namespace std;
    const int N = 1e5+5;
    int t,n,a[N];
    
    int main(){
    	cin>>t;
    	while(t--){
    		cin>>n;
    		for(int i=1;i<=n;i++) cin>>a[i];
    		bool flag=0;
    		int l=a[1];
    		for(int i=2;i<=n;i++){
    			if(a[i]>l){
    				if(a[i]!=a[i-1]+1){
    					flag=1;
    					break;
    				}
    				else l=a[i];
    			}
    			else l=a[i];
    		}
    		if(!flag) puts("Yes");
    		else puts("No");
    	}
    
    	return 0;
    }
    
    七月在野,八月在宇,九月在户,十月蟋蟀入我床下
  • 相关阅读:
    Mybatis——逆向工程
    Mybatis——Spring整合
    Mybatis——缓存机制
    Mbatis——动态SQL
    Mybatis_映射文件配置
    Mybatis XML 配置文件
    渣渣小本求职复习之路每天一博客系列——数据结构与常用算法(2)
    渣渣小本求职复习之路每天一博客系列——数据结构与常用算法(1)
    渣渣小本求职复习之路每天一博客系列——数据库基础(MySQL)(5)
    渣渣小本求职复习之路每天一博客系列——数据库基础(MySQL)(4)
  • 原文地址:https://www.cnblogs.com/voids5/p/12767998.html
Copyright © 2011-2022 走看看