竞赛讨论区 > 这题真的是要求字典序最小吗?
头像
吴丰华
发布于 2019-11-03 09:52
+ 关注

这题真的是要求字典序最小吗?

可乐这道题我的代码是这样的。
#include<bits/stdc++.h>
#define ll long long
#define louble long double
#define N 100005
using namespace std;
int n,m,k;
louble x[N],y[N];
int main(){
    cin>>n>>m>>k;
    for(int i=1;i<=k;++i)cin>>x[i]>>y[i];
    louble p=1.0*m/n;
    int root=1;
    for(int i=2;i<=k;++i){
        if(x[i]*p+y[i]*(1-p)>x[root]*p+y[root]*(1-p))root=i;//这里
    }
    for(int i=1;i<=k;++i){
        if(i==root)printf("%d ",n);
        else printf("0 ");
    }
    return 0;
}
这份代码只能过95%。
但是把那个大于号改为大于等于,他就过了。
#include<bits/stdc++.h>
#define ll long long
#define louble long double
#define N 100005
using namespace std;
int n,m,k;
louble x[N],y[N];
int main(){
    cin>>n>>m>>k;
    for(int i=1;i<=k;++i)cin>>x[i]>>y[i];
    louble p=1.0*m/n;
    int root=1;
    for(int i=2;i<=k;++i){
        if(x[i]*p+y[i]*(1-p)>=x[root]*p+y[root]*(1-p))root=i;//这里
    }
    for(int i=1;i<=k;++i){
        if(i==root)printf("%d ",n);
        else printf("0 ");
    }
    return 0;
}
这道题目要求字典序最小,不应该就是写大于号吗?


全部评论

(1) 回帖
加载中...
话题 回帖

本文相关内容

等你来战

查看全部

热门推荐