The 2017 ACM-ICPC Asia Shenyang Regional Contest [Cloned]

The 2017 ACM-ICPC Asia Shenyang Regional Contest [Cloned]

A-BBP Formula

B-Bridge

C-Empty Convex Polygons

D-Defense of the Ancients

E-Five-round Show Hand

F-Heron and His Triangle

题意:

给你一个n,让你求出满足t-1,t,t+1边长,并且面积是整数的三角形的最小的t

solution:

打表,找规律
打表程序

#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
typedef long long ll;

int main()
{
   
    for(int i=1;i<=1000;i++)
    {
   
        ll x=1ll*3*i*i*(i*i-4);
        ll y=sqrt(x);
        if(y*y!=x||y%8!=0)continue;
        if(i==2)continue;
        printf("%d\n",i);
    }
    return 0;
}


该题代码。

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;

public class Main{
   
	public static void main (String[] args) {
   
		Scanner in=new Scanner(System.in);
		int t;t=in.nextInt();
		BigInteger []res=new BigInteger[55];
		res[0]=BigInteger.valueOf(4);res[1]=BigInteger.valueOf(14);
		for(int i=2;i<55;i++)
			res[i]=res[i-1].multiply(BigInteger.valueOf(4)).subtract(res[i-2]);
		while(t>0) {
   
			t--;
			BigInteger n=in.nextBigInteger();
			for(int i=0;i<55;i++) {
   
				if(n.compareTo(res[i])<=0) {
   
					System.out.println(res[i]);
					break;
				}
			}
		}
	}
}

G-Infinite Fraction Path

H-Legends of the Three Kingdoms

I-Little Boxes

题意:

给了四个盒子的数量,求总和。坑点:会爆unsigned long long

import java.math.BigInteger;
import java.util.Scanner;
import java.util.Stack;
public class Main{
   
	public static void main(String[] args) {
   
		Scanner in=new Scanner(System.in);
		int t=in.nextInt();
		while(t>0) {
   
			t--;
			BigInteger a,b,c,d;
			a=in.nextBigInteger();
			b=in.nextBigInteger();
			c=in.nextBigInteger();
			d=in.nextBigInteger();
			BigInteger sum=a.add(b).add(c).add(d);
			System.out.println(sum);
		}
	}
}

J-New Self-describing Sequence

K-Rabbits

题意:

给了你n只兔子,他们占据不同的数字,最外面的兔子能跳到任意两只兔子中间,问他们能玩多久。

solution:

贪心,我们知道最优解就是尽可能将最外层两只兔子中间的还未被占据的地方都占据一遍,但是又由于有一只兔子要跳到两只兔子之间这个条件的限制,所以就要去掉最外层相邻两个兔子的距离的一个,所以就去掉少的那个就行。

#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
typedef long long ll;
int t,n;
int a[505];
int vis[10005];
int main()
{
   
    scanf("%d",&t);
    while(t--)
    {
   
        scanf("%d",&n);
        memset(vis,0,sizeof(vis));
        for(int i=0;i<n;i++)
        {
   
            scanf("%d",&a[i]);
            vis[a[i]]=1;
        }
        sort(a,a+n);
        int res=0,l,r;
        if(a[1]-a[0]<a[n-1]-a[n-2])
            l=a[1],r=a[n-1];
        else
            l=a[0],r=a[n-2];
        while(l<r)
        {
   
            while(l<r&&vis[l])l++;
            if(l>=r)break;
            vis[l]=1;
            res++;
        }
        printf("%d\n",res);
    }
    return 0;
}


精简代码

#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
typedef long long ll;
int t,n;
int a[505];
int main()
{
   
    scanf("%d",&t);
    while(t--)
    {
   
        scanf("%d",&n);
        for(int i=0;i<n;i++)
            scanf("%d",&a[i]);
        sort(a,a+n);
        int res=max(a[n-1]-a[1],a[n-2]-a[0])-n+2;
        printf("%d\n",res);
    }
    return 0;
}


L-Tree

M-Wandering Robots

全部评论

相关推荐

暑期是进不了大厂了想问问前端友友们&nbsp;,后面应该如何沉淀自己,我想秋招再冲一下尤其是八股,应该抓哪一块是重点,理解到什么程度呢,要学到什么深度才能抗住拷打。还有场景题如何去准备。期待友友们的解答。
命烈焰带我飞走:找个中厂小厂先看看吧,去了熟悉熟悉项目,简历上扒点东西,之后刷刷sobb上百度美团快手的日常实习,流程都比较快轮次也少,别给自己太大压力,一步一步来,先不用想着暑期,转正,秋招那些事情,另外如果可能的话可以关注下面试时候的形象,穿搭,环境这些,其实实习主要就是看个眼缘,看着好看声音好听其实加分不少..八股这些不要死记硬背,挨个拿去问问chatgpt,这个东西做出来是为了解决什么问题,有啥效果,自己有想法有个模糊的概念就可以了,人家也知道你是学生,实习生没有什么kpi,放你去面都是希望能把你招进去的,场景题算法题没做过你可以边试着写边跟面试官说你的想法思路,也可以直说没见过让他们给你提示,反正最后都是与或非顺序分支循环存取值那套。总之建议是别为了秋招..出去旅旅游放松放松,少投几家少背八股多写写代码
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务