当前位置: 首页 > news >正文

怎样做商城手机网站营销网站建设多少钱

怎样做商城手机网站,营销网站建设多少钱,荆州网站建设费用,查看网站的注册时间题目链接: D - 1D Country (atcoder.jp) 题目描述: 数据范围: 输入输出: 题目分析: 典型的l, r 区间问题,即是前缀和问题,但是注意到数据范围, 数据范围1e-9 到 1e9 数据范围,要是从最小到最大直接for循环去模拟的话,时间复杂度…

题目链接:

D - 1D Country (atcoder.jp)

题目描述:

数据范围:

输入输出:

题目分析:

典型的l, r 区间问题,即是前缀和问题,但是注意到数据范围, 数据范围1e-9 到 1e9 数据范围,要是从最小到最大直接for循环去模拟的话,时间复杂度太高了O(2e9),注意到极限总共才2e5个居民,要去想到映射,不在关心他们的位置,而去把下标转换为从1开始的,然后在询问l, r这段区间的时候二分去查到对应的l, r他们映射后的位置,然后用前缀和公式sum[映射后的r] - sum[映射后的l - 1]就是最后的答案,但是我用map去写的时候卡到了最后一个数据,但是用数组就过掉了,why?

最后一个数据没过的代码:

#include<bits/stdc++.h>
#define int long long using namespace std;const int N = 2e5 + 10;map<int, int>mp, ren, sum;
//map<int, int>ren;
int a[N];signed main() {int n, m;cin >> n;for(int i = 1; i <= n; i ++ ) {cin >> a[i];}for(int i = 1; i <= n; i ++ ) {int x;cin >> x;mp[a[i]] += x;}
//	sort(a + 1, a + n + 1);//a[0] = 0;
//	sum[a[1] - 1] = 0;sum[a[1]] = mp[a[1]];for(int i = 2; i <= n; i ++ ) {sum[a[i]] = sum[a[i - 1]] + mp[a[i]]; }
//	for(int i = 1; i <= n; i ++ ) {
//		cout << "a[i] = " << a[i] << " sum = " << sum[a[i]] << endl;
//	}cin >> m;// 二分的是位置 while(m -- ) {int l, r;cin >> l >> r;// 二分第一个大于等于l的位置int ll = 0, rr = n + 1;while(ll + 1 < rr) {int mid = ll + rr >> 1;if(a[mid] < l) ll = mid;else rr = mid;}int st = ll + 1;//	cout << "st = " << st << endl;// 二分最后一个小于等于r的位置 ll = 0, rr = n + 1;while(ll + 1 < rr) {int mid = ll + rr >> 1;if(a[mid] <= r)ll = mid;else rr = mid;}int en = ll;if(r > a[n]) {en = n;}if(l < a[1]) {st = 1;}
//		cout << "st - 1 = " << st - 1 << endl;
//		cout << "a[st - 1] = " << a[st - 1] << endl;
//		cout << "en = " << en << endl;
//		cout << "sumEnd = " << sum[a[en]] << endl;
//		cout << "sumStart = " << sum[a[st - 1]] << endl;if(st == 1) {cout << sum[a[en]] << endl;} else {cout << sum[a[en]] - sum[a[st - 1]] << endl;}}return 0;
}
/*
7
-10 -5 -3 -1 0 1 4
2 5 6 5 2 1 7
1
-10 -4*/

运行结果:

 

正确代码:

#include<bits/stdc++.h>
#define int long long using namespace std;const int N = 2e5 + 10;int a[N], sum[N];signed main() {int n, m;cin >> n;for(int i = 1; i <= n; i ++ ) {cin >> a[i];}for(int i = 1; i <= n; i ++ ) {int x;cin >> x;sum[i] = sum[i - 1] + x;}cin >> m;// 二分的是位置 while(m -- ) {int l, r;cin >> l >> r;// 二分第一个大于等于l的位置int ll = 0, rr = n + 1;while(ll + 1 < rr) {int mid = ll + rr >> 1;if(a[mid] < l) ll = mid;else rr = mid;}int st = ll + 1;//	cout << "st = " << st << endl;// 二分最后一个小于等于r的位置 ll = 0, rr = n + 1;while(ll + 1 < rr) {int mid = ll + rr >> 1;if(a[mid] <= r)ll = mid;else rr = mid;}int en = ll;cout << sum[en] - sum[st - 1] << endl;		}return 0;
}

运行结果:

http://www.yidumall.com/news/6349.html

相关文章:

  • 手工制作灯笼的步骤网站页面的优化
  • 做网站有用没bt磁力搜索引擎索引
  • 龙岗沙湾社区网站建设短视频运营公司
  • 中国最好的建筑设计公司seo咨询河北
  • 濮阳网络游戏公司班级优化大师免费下载app
  • 聊城企业做网站拉新app渠道
  • 什么样建广告网站seo免费推广软件
  • 男女做那个全面视频网站做引流推广的平台600
  • 网络用户提要求找人帮忙做的网站泰安做网站公司哪家比较好
  • 新手入门网站建设百度广告一天多少钱
  • 怎么在百度网站上做自己的网站网络营销推广公司名称
  • 网站建设合同英文版优化seo排名
  • 江西网站建设找哪家网页制作软件dreamweaver
  • 免费只做网站手机建立一个免费网站
  • 深圳做网站最好宁波网站制作优化服务公司
  • 网站接做网站单关于seo的行业岗位有哪些
  • 亚马逊deal网站怎么做网站建设费用
  • 做网站流量点击分析的软件营销培训视频课程免费
  • 做海报的网站什么编辑器湘潭seo优化
  • 提供医疗网站建设手把手教你优化网站
  • 所有网站域名都有网络广告宣传怎么做
  • 北京网站建设公司网络营销外包网络建站报价云南最新消息
  • 如何看还在建设的网站制作自己的网页
  • 我做的网站怎样被百度收录佛山百度seo代理
  • 建网站底部怎么做的优化软件下载
  • 毕业设计做网站 如何做流量精灵
  • 政府网站旅游栏目建设经典品牌推广文案
  • 哪里做网站最好网站2024疫情最新消息今天
  • 服饰品牌网站建设百度关键词排名爬虫
  • oa网站建设营销策划的概念