前缀和&&离散化
现在正在上课,但我还是要同步更新博文。。。\滑稽
先讲一个离散化,就是把几个离的特别远的数在不影响结果的情况下,变成相近的数。倒是没什么影响,但应用在数组下标的话可以节约空间。(貌似和hash有点像)
直接拍代码
给定n个数,如果一个数出现x次,则对答案的贡献为x^。
求这n个数对答案的贡献是多少。
n<=。
f[i] i这个数字出现了几次
cin>>n;
for (int i=; i<=n; i++) cin>>A[i]; ... 离散化
for (int i=; i<=n; i++) {t[i].x=A[i]; t[i].y=i;}
sort(t+,t+n+,cmp);
for (int i=; i<=n; i++) while (!A[t[i].y]==t[i].x);
A[t[i].y] 一定等于 t[i].x
for (int i=; i<=n; i++)
{
if (i== || t[i].x!=t[i-].x) now++;
A[t[i].y]=now;
}
... for (int i=; i<=n; i++) f[A[i]]++;
for (int i=; i<=n; i++)
ans+=f[i]*f[i];
cout<<ans;
前缀和是个好东西,可以方便的操作。(每次加前一个,找区间时整体相减)
来一个矩阵前缀和
给定一个n*n的矩阵ai,j以及m个询问。
每次询问一个子矩阵的和。
要求一个O(n*n+m)的做法。
for (i=; i<=n; i++)
for (j=; j<=n; j++)
f[i][j]=f[i-][j]+f[i][j-]-f[i-][j-]+a[i][j];
f[i][j] 左上角在(,),右下角在(i,j)的和是多少
for (i=; i<=m; i++)
{
cin>>x>>y>>X>>Y;
cout<<f[X][Y]-f[x-][Y]-f[X][y-]+f[x-][y-]<<endl;
}
还有一个差值的数组,f[]中存的是每个数和前一个数的差值,特殊的,f[1] = 本身。
附赠代码:
cin>>n;
for (i=; i<=n; i++) cin>>a[i];
cin>>m;
for (i=; i<=m; i++)
{
cin>>A>>B>>C;
f[A]+=C; f[B+]-=C;
}
for (i=; i<=n; i++) f[i]=f[i-]+f[i];
for (i=; i<=n; i++) cout<<a[i]+f[i]<<' ';
Captain最巨!!!
前缀和&&离散化的更多相关文章
- AcWing:239. 奇偶游戏(前缀和 + 离散化 + 带权并查集 + 异或性质 or 扩展域并查集 + 离散化)
小A和小B在玩一个游戏. 首先,小A写了一个由0和1组成的序列S,长度为N. 然后,小B向小A提出了M个问题. 在每个问题中,小B指定两个数 l 和 r,小A回答 S[l~r] 中有奇数个1还是偶数个 ...
- Acwing-121-赶牛入圈(二分, 二维前缀和,离散化)
链接: https://www.acwing.com/problem/content/123/ 题意: 农夫约翰希望为他的奶牛们建立一个畜栏. 这些挑剔的畜生要求畜栏必须是正方形的,而且至少要包含C单 ...
- poj_3179 Corral the Cows (二分+二维前缀和+离散化)
[题目链接] http://poj.org/problem?id=3179 [参考] http://www.cnblogs.com/evenbao/p/9243183.html [算法] 二分答案+判 ...
- codefroces 873 B. Balanced Substring && X73(前缀和思想)
B. Balanced Substring You are given a string s consisting only of characters 0 and 1. A substring [l ...
- [CF961E] Tufurama
Description: 有一天Polycarp决定重看他最喜爱的电视剧<Tufurama>.当他搜索"在线全高清免费观看Tufurama第3季第7集"却只得到第7季第 ...
- Uva12663
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=110383#problem/C 题目大意:有一些不同高度的桥,会涨几次水,水流初 ...
- [Usaco2011 Feb]Generic Cow Protests
Description Farmer John's N (1 <= N <= 100,000) cows are lined up in a row and numbered 1..N. ...
- 【Codeforces 1042D】Petya and Array
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 把a[i]处理成前缀和 离散化. 枚举i从1..n假设a[i]是区间和的a[r] 显然我们需要找到a[r]-a[l]<t的l的个数 即a ...
- 洛谷 2344 奶牛抗议 Generic Cow Protests, 2011 Feb
[题解] 我们可以轻松想到朴素的状态转移方程,但直接这样做是n^2的.所以我们考虑采用树状数组优化.写法跟求逆序对很相似,即对前缀和离散化之后开一个权值树状数组,每次f[i]+=query(sum[i ...
随机推荐
- 3星|《管理十诫》:十年前可口可乐退休CEO的一生管理经验总结
管理十诫:影响你一生的管理哲学 英文书应该是2008年出版的.国内出版过几个译本. 作者是可口可乐CEO.本书是他从可口可乐CEO退下来后写的管理经验总结.作者总结了11条CEO不应该做的事.这11条 ...
- 扩增子图表解读8网络图:节点OTU或类Venn比较
网络图 Network 网络图虽然给人高大上的感觉,但是由于信息太多,无法给读者提供读有效的可读信息或是读者不知道该理解什么,总是让人望尔却步.那是因为大家太不了解网络,自己读不懂网络想表达的意思及其 ...
- centos7安装个人网盘nextcloud
本节介绍如何在centos7上建立个人云盘nextcloud服务器 第一:建立用户nextcloud 第二:安装下载工具wget 第三:把nextcloud账号添加到sudoers目录下 第四:切换到 ...
- 线索二叉树【C语言】
#include<stdio.h> #include<stdlib.h> typedef char ElemType; typedef enum{Link,Thread} Po ...
- hdu 5170 精度控制
众所周知,GTY是一位神犇,为了更好的虐场,他从来不写数学作业而是去屠题,他的数学老师非常不爽,但由于GTY每次考试都AK,她也不能说什么,有一天老师在黑板上写了四个数——a,b,c,da,b,c,d ...
- 3.3.4 lambda 表达式
lambda表达式常用来声明匿名函数,即没有函数名字的临时使用的小函数,例如第2章中列表对象的sort()方法以及内置函数sorted()中key参数.lambda表达式只可以包含一个表达式,不允许包 ...
- SCI 计算机 数学相关期刊
数学,电子通信,计算机类 出版地 收录库 刊名 刊期 ISSN 影响因子 中国大陆 SCI CHINESE SCIENCE BULLETIN<科学通报>(英文版) 半月刊 1001-653 ...
- noip模拟赛 fateice-string
题目背景 Aldnoah ——火星上超古代文明留下的能量源,承认初代火星移民雷伊·雷加利亚博士(即后来的薇瑟帝国初代皇帝)为正统继承者,启动因子融入皇族的遗传因子中,只有皇族天生具有Aldnoah的启 ...
- LightOJ - 1148 - Mad Counting
先上题目: 1148 - Mad Counting PDF (English) Statistics Forum Time Limit: 0.5 second(s) Memory Limit: 3 ...
- OSI七层参考模型每一层都有哪些协议
OSI七层参考模型每一层都有哪些协议 第七层应用层 协议:DHCP • DNS • FTP • Gopher • HTTP • IMAP4 • IRC • NNTP • XMPP • POP3 • S ...