洛谷 P3819 松江1843路
2017-07-03 15:40
106 查看
一个小小的技巧:输出long long最大值
printf("%lld",(long long)1e19);
因为long long最大不是9*10^18所以输1e19就行啦
然后本题就是个三分,很容易看出这个函数是凸函数。注意本题要用long long。
#include<iostream>
#include<stdio.h>
#include<math.h>
#include<algorithm>
using namespace std;
const long long oo=9223372036854775807;
const double res=10;
struct node{
long long x,r;
}house[100005];
long long lenth,n;
long long distan(long long x)
{
long long sum=0;
for(int i=1;i<=n;i++)
sum+=(abs(x-house[i].x)*house[i].r);
return sum;
}
int main()
{
long long l=oo,r=-oo-1,ans=oo;
scanf("%lld%lld",&lenth,&n);
for(int i=1;i<=n;i++)
{
scanf("%lld%lld",&house[i].x,&house[i].r);
l=min(l,house[i].x);
r=max(r,house[i].x);
}
l=min(l,(long long)0);
r=max(r,lenth);
long long ll,rl,lm,rm;
while(r-l>res)
{
lm=l+(r-l)/3,rm=r-(r-l)/3;
ll=distan(lm),rl=distan(rm);
if(ll>=rl)
l=lm;
else
r=rm;
}
for(long long i=max(l-10,(long long)0);i<=min(r+10,lenth);i++)
ans=min(ans,distan(i));
printf("%lld",ans);
return 0;
}
printf("%lld",(long long)1e19);
因为long long最大不是9*10^18所以输1e19就行啦
然后本题就是个三分,很容易看出这个函数是凸函数。注意本题要用long long。
#include<iostream>
#include<stdio.h>
#include<math.h>
#include<algorithm>
using namespace std;
const long long oo=9223372036854775807;
const double res=10;
struct node{
long long x,r;
}house[100005];
long long lenth,n;
long long distan(long long x)
{
long long sum=0;
for(int i=1;i<=n;i++)
sum+=(abs(x-house[i].x)*house[i].r);
return sum;
}
int main()
{
long long l=oo,r=-oo-1,ans=oo;
scanf("%lld%lld",&lenth,&n);
for(int i=1;i<=n;i++)
{
scanf("%lld%lld",&house[i].x,&house[i].r);
l=min(l,house[i].x);
r=max(r,house[i].x);
}
l=min(l,(long long)0);
r=max(r,lenth);
long long ll,rl,lm,rm;
while(r-l>res)
{
lm=l+(r-l)/3,rm=r-(r-l)/3;
ll=distan(lm),rl=distan(rm);
if(ll>=rl)
l=lm;
else
r=rm;
}
for(long long i=max(l-10,(long long)0);i<=min(r+10,lenth);i++)
ans=min(ans,distan(i));
printf("%lld",ans);
return 0;
}
相关文章推荐
- 洛谷 P3819 松江1843路
- 洛谷——P3819 松江1843路
- P3819 松江1843路
- P3819 松江1843路
- P3819 松江1843路
- P3819 松江1843路(洛谷月赛)
- AC日记——松江1843路 洛谷七月月赛
- P3819 松江1843路
- 洛谷 P2341 BZOJ 1051 [HAOI2006]受欢迎的牛
- 洛谷 P1602 Sramoc问题
- 洛谷——P1067 多项式输出
- 洛谷 P2742 [USACO5.1]圈奶牛Fencing the Cows
- 洛谷 P1288 取数游戏II
- 洛谷P2246 SAC#1 - Hello World(升级版)
- 【洛谷 1525】关押罪犯 并查集||二分+染色
- 洛谷 P1595 信封问题
- |洛谷|贪心|P2813 母舰
- 洛谷 P1204 [USACO1.2] 挤牛奶Milking Cows
- 洛谷 P1908 逆序对
- 洛谷 P1455 搭配购买