牛客IOI周赛27-普及组 (补题)

#A

思路:

很容易想到,小猫在墙角,如果你的x,y轴只要有任意一个墙没有桩,小猫都会跑出来,当小猫不会跑出来的时候,答案最小肯定是离原点最近的两个坐标轴上的点,求距离。

代码:

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
const double INF=1e9+9;

int main()
{
    double nx=INF,ny=INF,x,y;
    int n,i;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        scanf("%lf%lf",&x,&y);
        if(x==0)ny=min(ny,y);
        if(y==0)nx=min(nx,x);
    }
    if(nx==INF||ny==INF)printf("Poor Little H!");
    else printf("%.10lf",sqrt(nx*nx+ny*ny));
    return 0;
}

#B

手推几项,很容易猜,答案就是n*n;但是题目数比较大,要用到高精度,或者PHP。

代码:

n=int(input())
print(n*n)

还是得学一下PHP...

#C

#include<bits/stdc++.h>
using namespace std;
#define de(x) cout<<#x<<" : "<<x<<endl;
const int N=1e6+20;
typedef long long ll;
int n,k;
int main(){
	int T;
	cin>>T;
	while(T--){
		ll n,k;
		scanf("%lld%lld",&k,&n);
		if(k==1){
			printf("%lld\n",n-1);//k==1只能用加法,特判。
			continue;
		}
		ll ans=0;
		while(n>=k){
			ans+=n%k;
			ans++;
			n/=k;
		}
		ans+=n-1;//没除尽的,用操作1,++,
		printf("%lld\n",ans);
	}
}

#D

貌似是图论,以后再说。

算法专题 文章被收录于专栏

怕忘记,好复习

全部评论

相关推荐

程序员鼠鼠_春招版:我要12k吧我挂了,还招呢,天天被割,这点钱都不舍得出
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务