zoukankan      html  css  js  c++  java
  • 比赛名:Preliminaries for Benelux Algorithm Programming Contest 2019 时间2020.3.14

     

    题意就是判断东天际线和北天际线的值可不可以满足(东天际线就是每一行的最大值,北天际线就是每一列的最大值)

    判断条件其实很简单,就是看行上的最大值是否也是列上的最大值,如果是就满足。

     例1: 东天际线最大值是4,北天际线最大值也是4,所有条件成立。

    例2:东天际线最大值是4,北天际线最大值是2,所有不满足。

     代码:

    #include<iostream>
    #include<algorithm>
    using namespace std;
    int main(){
    int r,c;
    int a[1001],b[1001];
    cin>>r>>c;
    for(int i=0;i<r;i++){
    cin>>a[i];
    }
    for(int i=0;i<c;i++){
    cin>>b[i];
    }
    sort(a,a+r);
    sort(b,b+c);
    if(a[r-1]==b[c-1]){
    cout<<"possible"<<endl;
    }
    else{
    cout<<"impossible"<<endl;
    }
    return 0;
    }

     

       题意很好懂就是找出有没有满足m^2-k^2=n的n,给的范围很大如果循环模拟的话肯定要超时,就要找规律。

    规律:1=1^2-0^2  2 没有 3=2^2-1^2 4=2^2-0^2 5=3^2-2^2 6 没有 7=4^2-3^2……就是奇数都有m和k且m和k的和就是n并且相邻,偶数只有满足4的倍数才有4 16 64.

    代码:

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    ll n;
    int main(){
    scanf("%lld",&n);
    if(n%2==0&&n%4!=0){
    printf("impossible");
    return 0;
    }
    if(n%2==0){
    ll a=n/4;
    printf("%lld %lld",a+1,a-1);
    }
    else
    printf("%lld %lld",(n+1)/2,(n+1)/2-1);

    return 0;
    }

     

     这题就是输入一个字符串找出有几个e然后原样输出不过e的数目要翻倍

    代码:

    #include<iostream>
    using namespace std;
    int main(){
    	string a;
    	int sum=0;
    	cin>>a;
    	for(int i=0;i<a.size();i++){
    		if(a[i]=='e'){
    		   sum++;	
    		}
    	}
    	sum*=2;
    	cout<<"h";
    	for(int i=0;i<sum;i++){
    		cout<<"e";
    	}
    	cout<<"y"<<endl;
    	return 0;
    } 

     这题根据题目给的意思进行运算就行,注意数字的范围要开到longlong

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    int a[1000000+8];
    int main()
    {
    ll n,i,j,k=0,sum=0,mul=0;
    cin>>n;
    for(i=0;i<n;i++)
    {
    cin>>a[i];
    sum+=a[i];
    }
    ll amax=-1;
    ll fin,h,m;
    for(i=0;i<n;i++)
    {
    mul+=a[i]*a[i];
    sum-=a[i];
    k*=sum;
    h=mul-a[i]*a[i];
    h*=(sum+a[i]);
    fin=max(k,h);
    amax=max(fin,amax);
    }
    cout<<amax;
    return 0;

    }

  • 相关阅读:
    java 23种设计模式及具体例子 收藏有时间慢慢看
    java中的内存一般分成几部分?
    深入浅出Java垃圾回收机制
    HashMap、HashTable、LinkedHashMap和TreeMap用法和区别
    java 序列化与反序列化
    JAVA中int、String的类型相互转换
    java IO和NIO 的区别
    数据库设计
    服务器硬件优化
    系统配置优化
  • 原文地址:https://www.cnblogs.com/liyongqi/p/12493802.html
Copyright © 2011-2022 走看看