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在线编程里面的一个问题 回文字符串是指从左到右和从右到左相同的字符串,现给定一个仅由小写字母组成的字符串,你可以把它的字母重新排列,以形成不同的回文字符串. 输入:非空仅由小写字母组成的字符 ...
随机推荐
- Codeforces70 | Codeforces Beta Round #64 | 瞎讲报告
目录 前言 正文 A B C D E 前言 这个毒瘤的517 放了Div1 然后D题是昨天讲的动态凸包(啊喂!我还没来的及去写 结果自己想的是二分凸包 (当然没有写出来 写完前两题之后就愉快地弃疗 C ...
- 04-matplotlib-柱形图
import numpy as np import matplotlib.pyplot as plt # 柱形图 # 例一 N =5 y = [15,28,10,30,25] index = np.a ...
- Acer 4750G安装OS X 10.9 DP4(简版)
一.下载os x 10.9懒人版:http://bbs.pcbeta.com/viewthread-1384504-1-1.html 二.用系统自带的磁盘分区工具划分一个5G左右的临时安装盘(新建分区 ...
- numastat命令详解
基础命令学习目录 作者:[吴业亮]博客:http://blog.csdn.net/wylfengyujiancheng一.系统架构的演进从SMP到NUMA1.SMP(Symmetric Multi-P ...
- Beta发布文案+美工
团队名称:探路者 1蔺依铭:http://www.cnblogs.com/linym762/(组长) 2张恩聚:http://www.cnblogs.com/zej87/ 3米赫:http://www ...
- [BUAA软工]第0次个人作业
[BUAA软工]第0次个人作业 本次作业所属课程 : 2019BUAA软件工程 本次作业要求: 第0次个人作业 我在本课程的目标: 熟悉软件工程流程,规范开发习惯 本次作业的帮助: 熟悉课程流程 Pa ...
- iOS 开发学习-类的创建与实现,与java语言的对比
Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { //在{}中定义属性(全局变量/实例变量 ...
- <<梦断代码>>读后感
<梦断代码>中对软件工程所面临的种种困难与艰难的描述,即便再过5年读也许都不过时.因为正如原作者所说,书中描写的是一队人马并肩扛起代码大石,虽历经磨难仍欲将其推上山顶的故事,而正是这种故事 ...
- Task 6.2冲刺会议九 /2015-5-22
今天把之前的跳转问题加以改正并加以优化.遇到的主要问题是跳转的时后时间有点长,以为没有成功.之后查资料说是端口没有及时释放,导致了程序的滞缓.明天要继续把程序的界面进行优化.
- 修改MyEclipse工作空间
MyEclipse如何更改工作空间,MyEclipse是java开发常用工具,在开发的过程中我们会经常切换工作空间来切换项目内容,初学者来说有必要讲一下如何切换工作空间 工具/原料 MyEclip ...