poj 1990
借鉴cxlove大神的思路
题意:听力v,位置x,2个牛交流声音为max(v1,v2)*(x1-x2),求总的
10000^2 tle
用的树状数组做的,排序,2个,小于vi的牛的总数和距离总和
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define maxn 20005
int arr[maxn],s[maxn];
//pair<int , int> cow[MAXN]; 类似结构体
struct tree
{
int x,v;
}a[maxn];
int cmp(tree a,tree b)
{
return a.v<b.v;
}
int lowbit(int x)
{
return x&-x;
}
void update(int *a,int x,int val)
{
while(x<maxn)
{
a[x]+=val;
x+=lowbit(x);
}
}
int getsum(int *a,int x)
{
int sum=0;
while(x>0)
{
sum+=a[x];
x-=lowbit(x);
}
return sum;
}
int main()
{
int n,i,j;
while(scanf("%d",&n)!=EOF)
{
memset(arr,0,sizeof(arr));
memset(s,0,sizeof(s));
for(i=0;i<n;i++) scanf("%d%d",&a[i].v,&a[i].x);
__int64 ans=0,total=0;
sort(a,a+n,cmp);
for(i=0;i<n;i++Q){
update(arr,a[i].x,1);
update(s,a[i].x,a[i].x);
total+=a[i].x;
__int64 s_num=getsum(arr,a[i].x);
__int64 s_x=getsum(s,a[i].x);
ans+=a[i].v*(s_num*a[i].x-s_x+total-s_x-(i+1-s_num)*a[i].x); }
printf("%I64d\n",ans);
}
return 0;
}
poj 1990的更多相关文章
- ●POJ 1990 MooFest
题链: http://poj.org/problem?id=1990 题解: 树状数组 把牛们按x坐标从小到大排序,依次考虑每头牛对左边和对右边的贡献. 对左边的贡献:从左向右枚举牛,计算以当前牛的声 ...
- POJ 1990 MooFest(zkw线段树)
[题目链接] http://poj.org/problem?id=1990 [题目大意] 给出每头奶牛的位置和至少要多少分贝的音量才能听到谈话 现在求奶牛两两交流成功需要的分贝*距离的总和. [题解] ...
- POJ 1990 MooFest(树状数组)
MooFest Time Limit: 1000MS Mem ...
- POJ 1990 MooFest --树状数组
题意:牛的听力为v,两头牛i,j之间交流,需要max(v[i],v[j])*dist(i,j)的音量.求所有两两头牛交谈时音量总和∑(max(v[i],v[j])*abs(x[j]-x[i])) ,x ...
- I-MooFest(POJ 1990)
MooFest Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5697 Accepted: 2481 Descripti ...
- poj 1990 MooFest
题目大意: FJ有n头牛,排列成一条直线(不会在同一个点),给出每头牛在直线上的坐标x.另外,每头牛还有一个自己的声调v,如果两头牛(i和j)之间想要沟通的话,它们必须用同个音调max(v[i],v[ ...
- MooFest POJ - 1990 (树状数组)
Every year, Farmer John's N (1 <= N <= 20,000) cows attend "MooFest",a social gather ...
- POJ 1990:MooFest(树状数组)
题目大意:有n头牛,第i头牛声调为v[i],坐标为x[i],任意两值牛i,j沟通所需的花费为abs(x[i]-x[j])*max(v[i],v[j]),求所有牛两两沟通的花费. 分析: 我们将奶牛按声 ...
- POJ 1990 线段树
题意: 思路: 线段树 (一棵就够啦 不像树状数组,还得用两棵) 先对v从小到大排序.每回插入的时候当前的v是最大的,只需要统计它到各个坐标的距离就好了. 里面存两个东西: 这个坐标左边的坐标个数和这 ...
随机推荐
- 再谈协方差矩阵之主成分分析PCA
上次那篇文章在理论层次介绍了下协方差矩阵,没准很多人觉得这东西用处不大,其实协方差矩阵在好多学科里都有很重要的作用,比如多维的正态分布,再比如今天我们今天的主角——主成分分析(Principal Co ...
- JQuery标签去重与数组去重
如图所示: 代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head ...
- r语言之散点图绘制及参数
一个简单的例子: > plot(cars$dist~cars$speed,+ main="车位移与速度的关系",+ xlab="速度",+ ylab=&q ...
- poj 2661 Factstone Benchmark
/** 大意: 求m!用2进制表示有多少位 m! = 2^n 两边同时取对数 log2(m!) = n 即 log2(1) + log2(2)+log2(3)+log2(4)...+log2(m) = ...
- Java多线程实现......(1,继承Thread类)
MyThread.java 中的代码: public class MyThread extends Thread{ private int startPrint,printCount; private ...
- (IOS)国际本地化设置
首先New File,在Resource中选择Strings File: 然后命名该strings文件,必须命名为 Localizable : 再者选中该strings文件,在Localization ...
- 转 fiddler教程
Fiddler 教程 Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发 ...
- [置顶] IT屌丝的离职申请
各位好,很遗憾在如此关键的时刻和大家说告别.我为金三也付出了近一年的心血,几乎没怎么休过令人舒心的周末,熬了多少夜更不用说,如此的离开,请相信我也非常心痛. 尽管直到现在我的水 ...
- StringIO模块字符串的缓存
StringIO经常被用来作为字符串的缓存,应为StringIO有个好处,他的有些接口和文件操作是一致的,也就是说用同样的代码,可以同时当成文件操作或者StringIO操作.比如: import st ...
- Asteroids(最小点覆盖)
Asteroids Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18183 Accepted: 9905 Descri ...