zoukankan      html  css  js  c++  java
  • 牛客练习

    题目1

    有一个城市需要修建,给你N个民居的坐标X,Y,问把这么多民居全都包进城市的话,城市所需最小面积是多少(注意,城市为平行于坐标轴的正方形)

    输入描述:
    第一行为N,表示民居数目(2≤N≤1000)

    输出描述:
    城市所需最小面积

    输入例子1:
    2
    0 0
    2 2

    输出例子1:
    4

    输入例子2:
    2
    0 0
    0 3

    输出例子2:
    9
    错误:之前用double过不去改为long long

    #include <iostream>
    #include <algorithm>
    using namespace std;
    
    int main(){
        int n;
        long long a,b;
        cin>>n;
        cin>>a>>b;
        long long maxi=a,mini=a;
        long long maxj=b,minj=b;
        for(int i=1;i<=n-1;i++){
            cin>>a>>b;
            if(a>maxi){
                maxi=a;
            }
            if(a<mini){
                mini=a;
            }
            if(b>maxj){
                maxj=b;
            }
            if(b<minj){
                minj=b;
            }
        }
        cout<<max(maxi-mini,maxj-minj)*max(maxi-mini,maxj-minj);
        
        
        return 0;
    }
    
    

    题目2

    圈地运动,就是用很多木棍摆在地上组成一个面积大于0的多边形~ 小明喜欢圈地运动,于是他需要去小红店里面买一些木棍,期望圈出一块地来。小红想挑战一下小明,所以给小明设置了一些障碍。障碍分别是: 1.如果小明要买第i块木棍的话,他就必须把前i-1块木棍都买下来。 2.买了的木棍都必须用在圈地运动中。 那么请问小明最少买多少根木棍,才能使得木棍围成的图形是个面积大于0多边形呢? 输入描述: 第一行一个数n,表示木棍个数。 第二行n个数,第i个数表示第i个木棍的长度ai 1<=n<=10000 1<=ai<=10000

    输出描述:
    输出一个数,表示最少需要的木棍个数,如果无解输出-1
    示例1
    输入
    3
    6 8 10
    输出
    3
    说明
    用三根6,8,10的木棍可以组成一个直角三角形的图形。

    多边形,n-1条边相加大于最大边就ok了

    #include <iostream>
    #include <algorithm>
    using namespace std;
    
    int main(){
        int n,i=0,s=0;
        cin>>n;
        if(n<3){//最少是三角形 
            cout<<-1; return 0;
        }
        int *a = new int [n];
        for(int i=0;i<n;i++){
            cin>>a[i];
        }s+=a[0]+a[1];
    	int max_length=max(a[0],a[1]);
        for(int i=2;i<n;i++){
        	s+=a[i];
        	if(a[i]>max_length){
        		max_length=a[i];
    		}
            if(s-max_length>max_length){
                cout<<i+1<<endl;
                return 0;
            }
        }
        cout<<-1<<endl;
        delete []a;
        
        return 0;
    }
    
    
    

    题目3

    小明有一个花园,花园里面一共有m朵花,对于每一朵花,都是不一样的,小明用1~m中的一个整数表示每一朵花。 他很喜欢去看这些花,有一天他看了n次,并将n次他看花的种类是什么按照时间顺序记录下来。 记录用a[i]表示,表示第i次他看了a[i]这朵花。 小红很好奇,她有Q个问题,问[l,r]的时间内,小明一共看了多少朵不同的花儿,小明因为在忙着欣赏他的花儿,所以想请你帮他回答这些问题。

    输入描述:
    输入两个数n,m;(1<=n<=2000,1<=m<=100);分别表示n次看花,m表示一共有m朵花儿。

    接下来输入n个数a[1]~a[n],a[i]表示第i次,小明看的花的种类;

    输入一个数Q(1<=Q<=1000000);表示小红的问题数量。

    输入Q行 每行两个数l,r(1<=l<=r<=n);表示小红想知道在第l次到第r次,小明一共看了多少不同的花儿。

    输出描述:
    一共Q行

    每一行输出一个数 表示小明在[l,r]的时间内看了多少种花。
    示例1
    输入
    5 3
    1 2 3 2 2
    3
    1 4
    2 4
    1 5
    输出
    3
    2
    3

    错误:从题目中可以看出Q最大可以是100万如果用cout语句的话就会导致时间超时,所以将cout语句改为printf语句就好了。

    
    #include <iostream>
    #include<cstring>
    #include <algorithm>
    using namespace std;
    
    int main(){
        int n,m;
        cin>>n>>m;//n次看花,m表示一共有m朵花儿
        int look[n+1];
        int flower[m+1];
        memset(look,0,sizeof(int)*(n+1));
        for(int i=1;i<=n;i++){
        //cin>>look[i];
    	scanf("%d",&look[i]);	
    	}
    	int q;
    	scanf("%d",&q);
        for(int i=0;i<q;i++){
        	int l,r,cnt=0,mark=1;
        	//cin>>l>>r;
        	scanf("%d%d",&l,&r);
    		memset(flower,0,sizeof(int)*(m+1));
        	for(int i=l;i<=r;i++){
        		flower[look[i]]=1;	
    		}
    
    				for(int i=1;i<=m;i++){
    				if(flower[i]==1){
    				cnt++;	
    				}
    			}printf("%d
    ",cnt);	
    
    	}
        
        return 0;
    }
    
    
    不一样的烟火
  • 相关阅读:
    "Serialization.SerializationException: 在分析完成之前就遇到流结尾”解决方法
    导出你的GAC Assembly中的DLLS
    SMTP无法发送邮件
    Feature"xxx" for list template "xxx" is not installed in this farm
    一个application多个 URL
    将sharepoint的list绑定到Infopath的下拉框
    Value was either too large or too small for a UInt32
    Event ID 5553 failure trying to synch site"xxxx" for ContentDB "xx" WebApp "xx". Exception message was Cannot insert duplicate key row in object 'dbo.UserMemberships' with unique index
    System.InvalidOperationException: 工作流的事件接收器上下文无效。
    Cannot open Proj.enUS.resx: no such file or folder
  • 原文地址:https://www.cnblogs.com/cstdio1/p/12234089.html
Copyright © 2011-2022 走看看