Codeforces 903D
来源:互联网 发布:js单个图片木马旋转 编辑:程序博客网 时间:2024/06/11 20:09
题意:
求:每个数和他前面的数,跟他差值大于一的数的差值的和
思路:
对于每一个数ai,减去他之前的所有的数和,这样的话 有一部分会多减,就是跟这个数差值是一的数,
这样我们再记录每一个数的数量,可以知道ai+1 和 ai-1 的数目,再相应的加上减去个数就是了
#include<iostream>#include<algorithm>#include<iomanip>#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#include<cmath>#include<set>#include<queue>#include<stack>#include<map>#define PI acos(-1.0)#define in freopen("in.txt", "r", stdin)#define out freopen("out.txt", "w", stdout)#define kuaidian ios::sync_with_stdio(0);using namespace std;typedef long long ll;typedef unsigned long long ull;const int maxn = 2e5 + 7, maxd = 1e8;const ll mod = 1e9 + 7;const int INF = 0x7f7f7f7f;int n;ll sum[maxn];map<ll , int> mp;int main() { kuaidian; mp.clear(); cin >> n; long double ans = 0; for(int i = 1; i <= n; ++i) { ll x; cin >> x; ans += ( (long double)(x*(i-1)) - (long double)(sum[i-1]) ); if(mp[x-1]) ans -= (long double)(mp[x-1]); if(mp[x+1]) ans += (long double)(mp[x+1]); sum[i] = sum[i-1] + x; mp[x]++; } cout << fixed << setprecision(0) << ans << endl; return 0;}
阅读全文
1 0
- Codeforces 903D
- Codeforces 903D
- Codeforces 903D Almost Difference
- codeforces 903D. Almost Difference
- codeforces 903D Almost Difference(递推式)
- codeforces 903 D. Almost Difference 线段树
- CodeForces 617D CodeForces 617D
- CodeForces 101D
- CodeForces 103D
- CodeForces 222D Olympiad
- codeforces 242d
- CodeForces 111D
- 【codeforces】3D
- CodeForces 127D Password
- codeforces 257D. Sum
- Codeforces 292D
- Codeforces 275D
- Codeforces 126D
- 关于Tomcat(8005,8080,8009)端口占用问题的一点总结配上网上找到的解决方法
- 实验_使用Struts框架进行数据验证(登陆校验)
- 多因子权重优化方法比较
- Fiori学习笔记
- 每天一个linux命令(20):find命令之exec
- Codeforces 903D
- 数据结构练习题目(二叉树部分)
- DPDK学习(rte_eal_init)
- bitmap的六种压缩方式,Android图片压缩
- windows系统下Python环境的搭建
- .net core 缓存帮助类
- Linux 定时截取 Tomcat 日志
- 工厂模式
- 《数字技术》连载33 第4章 信息的寄存传输和转换 第6节 求和与求差,数的大小比较