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. 占位符golang

    定义示例类型和变量 type Human struct { Name string } var people = Human{Name:"zhangsan"} 普通占位符 占位符 ...

  2. Java 内存模型_1

    title: Java 内存模型_1 date: 2017-01-15 17:11:02 tags: [JMM] categories: [Programming,Java] --- 概述 本文记录 ...

  3. Ajax请求返回Error:200无数据的解决方法

    先看代码 $.ajax({ type:"GET", url:"https://****/charts/data/genre2.json", dataType:& ...

  4. Python字典 (dict)

    作者博文地址:http://www.cnblogs.com/spiritman/ 字典是Python语言中唯一的映射类型.字典对象是可变的,它是一个容器类型,支持异构.任意嵌套. 创建字典 语法:{k ...

  5. win10浏览器访问vmware中ubuntu开启的某个服务端口出现的问题

    问题描述 1. win10系统中浏览器能正常访问  ubuntu中nginx服务器的80端口, 但是不能访问8082 问题原因 ubuntu 防火墙默认没有启用 8082端口, 需要开启这个端口号 解 ...

  6. 爬虫_处理js动态加载

    1.selenium模块下载网页提取url,[煎蛋网] https://www.cnblogs.com/fat39/p/9865949.html#tag5 2.该网页加密了url,通过js获取图片.分 ...

  7. Aspose.words Java基于模板生成word之纯文本内容

    一,创建word模板 1.新建一个word文档 2.分别给四个参数设置域 (1)将鼠标置于想要设置域的地方 (2)设置域名 (3)设置好之后如下图所示 二,项目 1,引入maven依赖 <dep ...

  8. Daily Scrum 1 --团队项目所需时间估计以及任务分配

    考虑到所有的任务不可能逐一细化分配给成员,我们将需要完成的任务进行了大致的分配.任务所需要的具体实现可以参看<学霸网站NABC> 所需要的总时间一共为44h. 我们会在以后的每日任务中进行 ...

  9. OO第三阶段作业总结

    调研:        最早的程序设计是直接采用机器语言来编写的,或者使用二进制码来表示机器能够识别和执行的指令和数据.机器语言的优点在于速度快,缺点在于写起来实在是太困难了,编程效率低,可读性差,并且 ...

  10. Visual Studio 中配置openCV问题

    1. 首先强调一点:VS与openCV的版本对应问题,一般而言,openCV对于VS采用向下的支持方式: vc6 -> VS6.0 vc7.0 -> VS2002 vc7.1 -> ...