码迷,mamicode.com
首页 > 其他好文 > 详细

588 div2 B. Expansion coefficient of the array

时间:2019-05-13 16:11:45      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:event   long   msu   struct   space   als   题解   str   ace   

题意: 

给出一个 非负串   求最大k值 使得k对任意i j 满足 k|ij|min(ai,aj)  

 

显然k<= min(ai,aj)/|i-j|

一开始做的时候  选了一个最大值   然后遍历数列  显然最大值和其他任意值相比min都是其他值   然后更新答案   但是正确性显然有问题。。。 因为这个wa了3次 

 

然后发现应该和最左端和最右端相比较 更新答案  

ac:

技术图片
#include<bits/stdc++.h>
using namespace std;
//input by bxd
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
#define repp(i,a,b) for(int i=(a);i>=(b);--i)
#define RI(n) scanf("%d",&(n))
#define RII(n,m) scanf("%d%d",&n,&m)
#define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)
#define RS(s) scanf("%s",s);
#define ll long long
#define pb push_back
#define REP(i,N)  for(int i=0;i<(N);i++)
#define CLR(A,v)  memset(A,v,sizeof A)
//////////////////////////////////
#define inf 0x3f3f3f3f
#define lson l,m,pos<<1
#define rson m+1,r,pos<<1|1
const int N=400000+5;
int a[N];
struct node
{
    int v,pos;
}s[N];
bool cmp(node a,node b)
{
    return a.v<b.v;
}
int main()
{
    int n;RI(n);
    int ans=1e9+5;
    rep(i,1,n)
    {
        RI(s[i].v);s[i].pos=i;
    }
    sort(s+1,s+1+n,cmp);
    rep(i,1,n)
    {
        if(s[i].pos!=1)
        ans=min(ans,s[i].v/(s[i].pos-1) );
        if(s[i].pos!=n)
        ans=min(ans,s[i].v/(n-s[i].pos));

    }
    cout<<ans;


    return 0;
}
View Code

 

官方题解:

其实根本不需要排序什么的  

直接比就行了

技术图片
#include <bits/stdc++.h>

using namespace std;

const int M = 1e5;

int n, a, m = 1e9;

int main()
{
    ios::sync_with_stdio(0); cin.tie(0);
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        cin >> a;
        m = min(m, a / max(i, n - 1 - i));
    }
    cout << m;
    return 0;
}
View Code

 

588 div2 B. Expansion coefficient of the array

标签:event   long   msu   struct   space   als   题解   str   ace   

原文地址:https://www.cnblogs.com/bxd123/p/10856992.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!