AtCoder Beginner Contest 146_E - Rem of Sum is Num
2021/10/22 6:09:41
本文主要是介绍AtCoder Beginner Contest 146_E - Rem of Sum is Num,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
预处理即可
我们要找的是 (f[i] - f[j]) % k == i - j
移项可得 f[i] - i = f[j] - j 在 i - j <= k 的条件下
因此题目变成了,对于每个右端点,在它的左边 k - 1 个有多少个满足 f[i] - i = f[j] - j
f[i] 是前缀和数组
AC_CODE
#include <map> #include <iostream> #define LL long long using namespace std; const int N = 2e5 + 10; LL f[N]; map<LL, int> mp; LL ans; int main() { int n, k; cin >> n >> k; for(int i = 1; i <= n; i ++ ) { cin >> f[i]; f[i] += f[i - 1]; } for(int i = 1; i <= n; i ++ ) f[i] = (f[i] - i) % k; int idx = min(n, k - 1); for(int i = 0; i <= idx; i ++ ) { ans += mp[f[i]]; mp[f[i]] ++; // cout << ans << endl; } for(int i = idx + 1; i <= n; i ++ ) { mp[f[i - k]] --; ans += mp[f[i]]; mp[f[i]] ++; } cout << ans << endl; return 0; }
这篇关于AtCoder Beginner Contest 146_E - Rem of Sum is Num的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26终极指南:Scrum中如何设置需求优先级
- 2024-06-26AI大模型企业应用实战(25)-为Langchain Agent添加记忆功能
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding
- 2024-06-23AI大模型企业应用实战(15)-langchain核心组件
- 2024-06-23AI大模型企业应用实战(16)-langchain核心组件
- 2024-06-23AI 大模型企业应用实战(06)-初识LangChain
- 2024-06-19EntBot.ai: AI Website Chatbot for Product Guides and Development Doc
- 2024-06-17zero-shot-learning-definition-examples-comparison
- 2024-06-06Package Easy(基于 NSIS 的打包exe安装包工具)使用方法-icode9专业技术文章分享