Complex Market Analysis(1400 math two points)

大标 2022年3月9日18:44:39
评论
17
摘要

1 /**\ 2 https://codeforces.com/problemset/problem/1609/C 3 一堆数相乘是质数,其中只有一个是质数, 4 统计左边的1的个数,右边1的个数,累加即可 5 \**/ 6 #include 7 using namespace std; 8 #define fi first 9 #define se second1

 1 /**\
 2 https://codeforces.com/problemset/problem/1609/C
 3 一堆数相乘是质数,其中只有一个是质数,
 4 统计左边的1的个数,右边1的个数,累加即可
 5 \**/
 6 #include <bits/stdc++.h>
 7 using namespace std;
 8 #define fi first
 9 #define se second
10 #define go continue
11 #define int long long
12 #define PII pair<int, int>
13 #define sf(x) scanf("%lld",&x)
14 #define ytz int _; sf(_); while(_--)
15 #define fory(i,a,b) for(int i = a; i <= b; ++i)
16 #define forl(i,a,b) for(int i = a; i >= b; --i)
17 #define debug(a) cout << #a << " = " << a <<endl;
18 const int N = 1e6 + 10;
19 int p[N], cnt;
20 bool st[N];
21 void ola(int n)
22 {
23     st[1] = 1;
24     fory(i, 2, n)
25     {
26         if(!st[i]) p[cnt++] = i;
27         for(int j = 0; p[j] <= n / i; j++)
28         {
29             st

* i] = true; 30 if(i % p[j] == 0) break; 31 } 32 } 33 } 34 int n, e, a[N]; 35 signed main() 36 { 37 ola(1e6); 38 ytz 39 { 40 int ok = 0; 41 sf(n), sf(e); 42 fory(i, 1, n) sf(a[i]); 43 fory(i, 1, n) 44 { 45 if(!st[a[i]]) 46 { 47 int l = 0, r = 0; 48 for(int j = i - e; j >= 1; j -= e) 49 { 50 if(a[j] == 1) l++; 51 else break; 52 } 53 for(int j = i + e; j <= n; j += e) 54 { 55 if(a[j] == 1) r++; 56 else break; 57 } 58 ok += r + l *(r + 1); 59 } 60 } 61 cout << ok << "\n"; 62 } 63 return 0; 64 }

 

  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
大标
  • 本文由 发表于 2022年3月9日18:44:39
  • 转载请务必保留本文链接:https://www.tanhuibiao.com/script/qita/1283.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: