首页 > 其他分享 >P2671 [NOIP2015 普及组] 求和(洛谷前缀和

P2671 [NOIP2015 普及组] 求和(洛谷前缀和

时间:2022-09-29 15:02:53浏览次数:94  
标签:P2671 NOIP2015 洛谷 格子 yn int num y1 y2

P2671 [NOIP2015 普及组] 求和

 1 //(x+z)*(num[x]+num[z])=
 2 //(x1+x2)*(y1+y2)+(x1+x3)*(y1+y3)+(x2+x3)*(y2+y3) 
 3 //=x1*(y1*(n-2)+y1+y2+...+yn) 
 4 //+x2*(y2*(n-2)+y1+y2+...+yn)
 5 //+xn*(yn*(n-2)+y1+y2+...+yn)
 6 //即求出y1到yn的前缀和然后循环计算即可 
 7 
 8 //题目要求格子颜色相同,可以把相同颜色的格子分在一个组
 9 //且z-y=y-x,得x+z=2y,所以x和z为同奇或同偶
10 //所以相同格子中又可以奇数分一组偶数分一组
11 //操作时只针对每个组组内操作就行 
12 #include <bits/stdc++.h>
13 using namespace std;
14 const int maxn=1e5+5;
15 //数据范围 
16 const int mol=1e4+7;
17 //模数 
18 int n,m,ans;
19 //m为颜色种数,没啥用 
20 struct node{
21     int id,num,col;
22     //id为下表,没有用
23     //num为格子上的数字
24     //col为格子颜色 
25 }p[maxn];
26 int geshu[maxn][2];
27 //相同颜色格子且下标同奇或同偶格子的个数 
28 int tot[maxn][2];
29 //相同颜色格子且下标同奇或同偶格子的数字和 
30 int main(){
31     scanf("%d%d",&n,&m);
32     for(int i=1;i<=n;i++){
33         scanf("%d",&p[i].num);
34         p[i].id=i;
35     }
36     for(int i=1;i<=n;i++){
37         scanf("%d",&p[i].col);
38         geshu[p[i].col][i%2]++;
39         tot[p[i].col][i%2]=(tot[p[i].col][i%2]+p[i].num)%mol;
40         //时刻模 
41     }
42     for(int i=1;i<=n;i++){
43         ans=(ans+i*((geshu[p[i].col][i%2]-2)*p[i].num%mol+tot[p[i].col][i%2])%mol)%mol;
44         
45     }
46     printf("%d",ans);
47     return 0;
48 }

 

标签:P2671,NOIP2015,洛谷,格子,yn,int,num,y1,y2
From: https://www.cnblogs.com/TFLSc1908lzs/p/16741572.html

相关文章

  • 洛谷 P3193 [HNOI2008]GT考试
    原题链接dp+矩阵加速明天再来写#pragmaGCCoptimize(2)#include<bits/stdc++.h>usingnamespacestd;#definefrfirst#definesesecond#defineet0exit(0);#......
  • 洛谷 P1164 小A点菜(DP:01背包)
    https://www.luogu.com.cn/problem/P1164题目大意:给定n种菜品(每种菜品只有1份),m块钱;问我们花完了这m块钱可以点的不同种类的菜品有多少种方案数?输入441122输......
  • 洛谷 P1667
    这种奇怪的在数列上操作,看看在前缀和/差分数组上发生了什么事往往能发现新大陆。考虑\(a\)的前缀和\(S\),不难发现操作\([l,r]\)就是交换\(S_{l-1},S_r\)。所以最......
  • 洛谷 P7774 [COCI2009-2010#2] KUTEVI(DP:完全背包)
    https://www.luogu.com.cn/problem/P7774题目大意:给定n个已知角度a[1],a[2],,,a[n];给定m个需要我们去拼凑的角度b[1],b[2],,,b[m];数组a中的角度可以使用任意多次,从......
  • 洛谷 CF1257F Make Them Similar 灰 题解
    前言本题解采用折半搜索算法完成,对于不打算用这种方法的同学,这篇题解可能会浪费你人生中宝贵的十几分钟。思路此题似乎找不出什么好的性质,那么考虑暴力。发现\(x,a\)......
  • 神奇的博弈结论(摘自洛谷)
    神奇的博弈结论(摘自洛谷)一.巴什博奕\((BashGame):\)A和B一块报数,每人每次报最少1个,最多报4个,看谁先报到30。这应该是最古老的关于巴什博奕的游戏了吧。其实如果知道原......
  • 洛谷P1463 反素数()
    P1463[POI2001][HAOI2007]反素数100%数据时,N<=2e9,即使使用线性的欧拉筛也会TLE如此大的数据范围,O(1)的时间复杂度都跑不过,说明要么打表,要么就需要通过计算直接得出答案,......
  • 洛谷 P1114 “非常男女”计划 (前缀和)
    https://www.luogu.com.cn/problem/P1114题目大意:给定一排数字,让我们求出最大的区间内1和0的个数相等时的区间长度。输入9010001100输出6输入10011......
  • 洛谷 P1025 [NOIP2001 提高组] 数的划分 (dfs)
    https://www.luogu.com.cn/problem/P1025给定一个n和k,把n拆分成k个数字的和,数字可以相同,但是种类不能相同。求能凑出的数量。输入73输出4明明是一道很简单的dfs,......
  • AcWing 133/洛谷2827 蚯蚓
    首先考虑根据题意模拟#include<bits/stdc++.h>#defineintlonglong//懒死谁了usingnamespacestd;typedeflonglongllinlinevoidrd(int&x){x=0;b......