1.改高精度 :float/double的精度为x位,小数部分最多x+x位(乘法和加法),整数部分<1000000*1000000/2=5 * 10^11

2.分成整数部分和小数部分分别存储,貌似不可以

方法:离散化 + 每个位置的所有的值排序(上升)[避免采用树状数组时误算] + 树状数组统计之前比x大的数目( F(max_index) - F(x) )

话说:

1.125

printf("%.2lf“,x);  output:1.12

用c++的setprecision也是输出1.12

话说如果真的是四舍五入的话,采用printf("%.2lf",x+0.005);

但这题不知道怎么样,应该直接printf("%.2lf“,x);就可以了~

下面代码未过,以后再改:

 #include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <list>
#include <stack>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <algorithm>
#include <iomanip>
#include <iostream> using namespace std; struct node
{
long double p;
long long a;
}point[]; map<long,long> inde;
long long num[];
long d[];
long double f[];
long double re=; bool cmp(const node a,const node b)
{
return a.a<b.a;
} int main()
{
long n,i,j,k,ind,gg,g;
scanf("%ld",&n);
for (i=;i<=n;i++)
scanf("%ld",&d[i]); gg=;
for (i=;i<=n;i++)
{
for (j=;j<=d[i];j++,gg++)
{
scanf("%llf%lld",&point[gg].p,&point[gg].a);
// cin>>point[gg].p>>point[gg].a;
num[gg]=point[gg].a;
}
sort(point+gg-d[i],point+gg,cmp);
}
sort(num+,num+gg); inde.clear();
g=;
for (i=;i<gg;i++)
if (i== || num[i]!=num[i-])
{
g++;
inde[num[i]]=g;
} for (i=;i<=g;i++)
f[i]=; gg=;
for (i=;i<=n;i++)
{
for (j=;j<=d[i];j++,gg++)
{
ind=inde[point[gg].a];
k=ind;
while (k>=)
{
re=re-f[k]*point[gg].p;
k=k-(k & (-k));
} k=g;
while (k>=)
{
re=re+f[k]*point[gg].p;
k=k-(k & (-k));
} k=ind;
while (k<=g)
{
f[k]=f[k]+point[gg].p;
k=k+(k & (-k));
}
}
} printf("%.2llf\n",re+0.005);//?? return ;
}
/*
2
4 4
0.25 1 0.25 2 0.25 4 0.25 3
0.25 1 0.25 3 0.25 2 0.25 4 3
4 4 4
0.25 1 0.25 2 0.25 4 0.25 3
0.25 1 0.25 3 0.25 2 0.25 4
0.25 1 0.25 3 0.25 2 0.25 4 2
1 1
1 1
1 0 3
5 2
0.1 0 0.2 1 0.3 2 0.2 3 0.2 4
0.6 10 0.4 -5 3
5 2
0.3 1 0.3 1 0.2 2 0.1 0 0.1 4
0.7 2 0.3 1 10
1 1 1 1 1 1 1 1 1 1
1 10
1 9
1 8
1 7
1 6
1 5
1 4
1 3
1 2
1 1 5
1 1 1 1 1
1 1073741824
1 -1073741823
1 -1073741823
1 1073741824
1 1073741824 3
3 1 2
0.5 -1 0.25 1 0.25 0
1 2
0.5 -1 0.5 1 2
5 5
0.2 5 0.2 4 0.2 3 0.2 2 0.2 1
0.2 1 0.2 2 0.2 3 0.2 4 0.2 5 2
1 1
0.12345 2
0.34214 1 2
3 3
0 1 0 1 1 2
0 -1 1 1 0 -100 1
5
0.2 1 0.1 -2 0.3 -1 0.1 1 0.3 5 2
5 5
0.2 -10 0.2 -10 0.2 -10 0.2 -10 0.2 -10
0.2 -10 0.2 -10 0.1 -20 0.1 -20 0.4 30 */

SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛 E. 疯狂计数的更多相关文章

  1. SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛 A. 地铁站

    //其实比赛的时候就想到这方法了,但看到数据太吓人,就没写//看着标程,实际上就是这方法,太坑爹…… /* 假设值为k,对于图中任意两点,圆1半径k/t1,圆2半径k/t2 圆1与圆2的交集为可以设置 ...

  2. SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛 D. 白色相簿

    从某一点开始,以层次遍历的方式建树若三点a.b.c互相连接,首先必先经过其中一点a,然后a可以拓展b.c两点,b.c两点的高度是相同的,若b(c)拓展时找到高度与之相同的点,则存在三点互相连接 //等 ...

  3. SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛*

    题目链接   Problems Problem A Problem B bitset…… Problem C Problem D Problem E Problem F Problem G 考虑最小生 ...

  4. 商汤科技汤晓鸥:其实不存在AI行业,唯一存在的是“AI+“行业

    https://mp.weixin.qq.com/s/bU-TFh8lBAF5L0JrWEGgUQ 9 月 17 日,2018 世界人工智能大会在上海召开,在上午主论坛大会上,商汤科技联合创始人汤晓鸥 ...

  5. 2019 计蒜之道 初赛 第一场 商汤AI园区的n个路口(中等) (树形dp)

    北京市商汤科技开发有限公司建立了新的 AI 人工智能产业园,这个产业园区里有 nn 个路口,由 n - 1n−1 条道路连通.第 ii 条道路连接路口 u_iui​ 和 v_ivi​. 每个路口都布有 ...

  6. 旷视向左、商汤向右,AI一哥之名将落谁家

    编辑 | 于斌 出品 | 于见(mpyujian) AI风口历经多年洗礼之后,真正意义上的AI第一股终于要来了. 相比于聚焦在语音识别技术上的科大讯飞.立足互联网产业的百度.发力人形机器人领域的优必选 ...

  7. 计蒜客 第四场 C 商汤科技的行人检测(中等)平面几何好题

    商汤科技近日推出的 SenseVideo 能够对视频监控中的对象进行识别与分析,包括行人检测等.在行人检测问题中,最重要的就是对行人移动的检测.由于往往是在视频监控数据中检测行人,我们将图像上的行人抽 ...

  8. 算法与数据结构(2)--英雄会第三届在线编程大赛:几个bing

    基础知识的回顾不再写到这里面了,会写一些算法算法的解答或者读一些相关书籍的笔记. 今天做了一道算法题,来自微软必应·英雄会第三届在线编程大赛:几个bing? 做出来了...但不知道为啥执行测试用例失败 ...

  9. csdn在线编程里面的一个排列组合题

    是csdn在线编程里面的一个问题 回文字符串是指从左到右和从右到左相同的字符串,现给定一个仅由小写字母组成的字符串,你可以把它的字母重新排列,以形成不同的回文字符串. 输入:非空仅由小写字母组成的字符 ...

随机推荐

  1. python实现简单线性回归

    之前推导了一元线性回归和多元线性回归,今天就用python来实现一下一元线性回归 先看下之前推导的结果   ,  第一种是用循环迭代的计算方法.这里的x,y是numpy中的array类型 def su ...

  2. cmd下执行mysql

    1.  mysql -uroot -p1234; 2.  show databases; 3.  use testnode; 4. 创建数据库表 CREATE DATABASE `node` DEFA ...

  3. Trait 是什么东西

    PHP官方手册里面写的内容是 自 PHP 5.4.0 起,PHP 实现了一种代码复用的方法,称为 trait. Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制.Trait 为了减少 ...

  4. 9.Hive Metastore Administration

    前言metastore参数metastore的基本参数metastore的额外参数客户端参数使用zk自动发现mestastore启动hive metastore服务 前言 本节讲metastore相关 ...

  5. scrum立会报告+燃尽图(第二周第二次)

    此作业要求参考: https://edu.cnblogs.com/campus/nenu/2018fall/homework/2247 一.小组介绍 组名:杨老师粉丝群 组长:乔静玉 组员:吴奕瑶.公 ...

  6. 互评beta版本 - hello word!【空天猎】

    基于NABCD评论作品 1.Need需求:市面上同类型的手机及PC端飞行射击类游戏有很多,所以从需求方面来说,这款游戏的潜在客户非常有局限性.近些年较火的飞行射击类游戏,例如腾讯14年发行的<全 ...

  7. Thunder-Beta发布-事后诸葛亮会议-2017秋-软件工程第十一次作业

    小组名称:Thunder项目名称:爱阅APP小组成员:王航 李传康 翟宇豪 邹双黛 苗威 宋雨 胡佑蓉 杨梓瑞一.设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有 ...

  8. java-switch语句

    switch语句是常用的java循环判断语句,但是有的知识点并不一定清楚. 首先是switch语句括号中的判断条件,判断条件只能是整型或者字符和整型或者字符组成的表达式. 再就是case语句,可以称之 ...

  9. C# 打包

    开发环境:VS2010+SQL Server 2008 操作系统:win7_32bit 旗舰版 开发语言:C# 项目名称:学生寄宿管理系统 下面开始介绍:如何给windows应用程序打包? 第一步: ...

  10. sqlDataAdapter和SqlCommand的区别

    因为DataSet是离线的,所以SqlDataAdapter这个对象是连接DataSet和数据库的桥梁,所有对DataSet的操作(填充,更新等)都要通过他 ado.net数据访问有两种方式: 1.离 ...