SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛 E. 疯狂计数
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. 疯狂计数的更多相关文章
- SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛 A. 地铁站
//其实比赛的时候就想到这方法了,但看到数据太吓人,就没写//看着标程,实际上就是这方法,太坑爹…… /* 假设值为k,对于图中任意两点,圆1半径k/t1,圆2半径k/t2 圆1与圆2的交集为可以设置 ...
- SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛 D. 白色相簿
从某一点开始,以层次遍历的方式建树若三点a.b.c互相连接,首先必先经过其中一点a,然后a可以拓展b.c两点,b.c两点的高度是相同的,若b(c)拓展时找到高度与之相同的点,则存在三点互相连接 //等 ...
- SenseTime Ace Coder Challenge 暨 商汤在线编程挑战赛*
题目链接 Problems Problem A Problem B bitset…… Problem C Problem D Problem E Problem F Problem G 考虑最小生 ...
- 商汤科技汤晓鸥:其实不存在AI行业,唯一存在的是“AI+“行业
https://mp.weixin.qq.com/s/bU-TFh8lBAF5L0JrWEGgUQ 9 月 17 日,2018 世界人工智能大会在上海召开,在上午主论坛大会上,商汤科技联合创始人汤晓鸥 ...
- 2019 计蒜之道 初赛 第一场 商汤AI园区的n个路口(中等) (树形dp)
北京市商汤科技开发有限公司建立了新的 AI 人工智能产业园,这个产业园区里有 nn 个路口,由 n - 1n−1 条道路连通.第 ii 条道路连接路口 u_iui 和 v_ivi. 每个路口都布有 ...
- 旷视向左、商汤向右,AI一哥之名将落谁家
编辑 | 于斌 出品 | 于见(mpyujian) AI风口历经多年洗礼之后,真正意义上的AI第一股终于要来了. 相比于聚焦在语音识别技术上的科大讯飞.立足互联网产业的百度.发力人形机器人领域的优必选 ...
- 计蒜客 第四场 C 商汤科技的行人检测(中等)平面几何好题
商汤科技近日推出的 SenseVideo 能够对视频监控中的对象进行识别与分析,包括行人检测等.在行人检测问题中,最重要的就是对行人移动的检测.由于往往是在视频监控数据中检测行人,我们将图像上的行人抽 ...
- 算法与数据结构(2)--英雄会第三届在线编程大赛:几个bing
基础知识的回顾不再写到这里面了,会写一些算法算法的解答或者读一些相关书籍的笔记. 今天做了一道算法题,来自微软必应·英雄会第三届在线编程大赛:几个bing? 做出来了...但不知道为啥执行测试用例失败 ...
- csdn在线编程里面的一个排列组合题
是csdn在线编程里面的一个问题 回文字符串是指从左到右和从右到左相同的字符串,现给定一个仅由小写字母组成的字符串,你可以把它的字母重新排列,以形成不同的回文字符串. 输入:非空仅由小写字母组成的字符 ...
随机推荐
- mail邮件详解
基础命令学习目录首页 1.配置 vim /etc/mail.rc文件尾增加以下内容 set from=1968089885@qq.com smtp="smtp.qq.com"s ...
- 使用SSD目标检测c++接口编译问题解决记录
本来SSD做测试的Python接口用起来也是比较方便的,但是如果部署集成的话,肯定要用c++环境,于是动手鼓捣了一下. 编译用的cmake,写的CMakeList.txt,期间碰到一些小问题,简单记录 ...
- PHP中的文件包含
在PHP中,包含文件有两种方式:include和require.这两种方式的功能一样,只有一个区别,就是使用require包含一个文件时,如果出现错误,脚本不会继续执行:而如果使用include包含, ...
- 2018-2019-20172321 《Java软件结构与数据结构》第八周学习总结
2018-2019-20172321 <Java软件结构与数据结构>第八周学习总结 教材学习内容总结 第12章 优先队列与堆 一.概述 堆 堆的前提就是他首先是一个完全二叉树,其次就是满足 ...
- b4
吴晓晖(组长) 过去两天完成了哪些任务 昨天FloatingActionButton和权限获取调整 今天复习,没写东西,晚点有空了写 展示GitHub当日代码/文档签入记录 接下来的计划 推荐算法 还 ...
- The North American Invitational Programming Contest 2017 题目
NAIPC 2017 Yin and Yang Stones 75.39% 1000ms 262144K A mysterious circular arrangement of black st ...
- 对于Redis的了解
Redis :高性能的key-value数据库,支持存储的value类型包括字符串.链表.集合.有序集合.哈希类型. redis使用两种文件格式:全量数据和增量请求. 全量数据格式是将内存中的数据写入 ...
- 19_集合_第19天(List、Set)_讲义
今日内容介绍 1.List接口 2.Set接口 3.判断集合唯一性原理 非常重要的关系图 xmind下载地址 链接:https://pan.baidu.com/s/1kx0XabmT27pt4Ll9A ...
- SVM (support vector machine)
简单原理流程转自:http://wenku.baidu.com/link?url=57aywD0Q6WTnl7XKbIHuEwWENnSuPS32QO8X0a0gHpOOzdnNt_K0mK2cucV ...
- cxDBTreelist一些使用方法
一.导出EXCEL TXT HTML: uses cxTLExportLink; cxExportTLToEXCEL(dm.SaveDialog.FileName,cxDBTreeList1, ...