第十二周 5.16 --- 5.22

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十二周 5.16 --- 5.22相关的知识,希望对你有一定的参考价值。

5.16

...

5.17

 cf353 c  C - Money Transfers

只想到如果一个区间长度为 x 的话,需要 x-1次操作

然后一直想环形转成线形要怎么做...

看题解.

可以考虑成 k 个区间 每个区间的和都为 0 那么 需要 n-k次

只要 k 最大

暴力算前缀和,如果碰到一次前缀和相等的,就说明中间那一段为 0 了

技术分享
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 #include<map>
 6 using namespace std;
 7 
 8 typedef long long LL;
 9 int n;
10 const int maxn = 1e6+5;
11 map<long long,int> h;
12 int a[maxn];
13 
14 int main(){
15     while(scanf("%d",&n) != EOF){
16         int x;
17         h.clear();
18         LL pre = 0LL;
19         int ans = 0;
20         for(int i = 1;i <= n;i++){
21             scanf("%d",&a[i]);
22             pre += 1LL*a[i];
23             h[pre]++;
24             ans = max(ans,h[pre]);
25         }
26         printf("%d\\n",n-ans);
27     }
28     return 0;
29 }
View Code

 

以上是关于第十二周 5.16 --- 5.22的主要内容,如果未能解决你的问题,请参考以下文章

20179209《Linux内核原理与分析》第十二周作

第十二周测试

第十二周 设计原则

第十二周进度条

第十二周学习进度表

第十二周学习进度