2 条题解

  • 0
    @ 2024-2-6 20:44:19

    AC代码

    #include<bits/stdc++.h>
    #define N 100005
    #define M 10007
    using namespace std;
    int main(){
    	int n,m;
    	cin>>n>>m;
        int a[N],c[N];
        long long s[N][2],k[N][2],ans;
    	for(int i=1;i<=n;i++)
    		cin>>a[i];
    	for(int i=1;i<=n;i++)
    	{
    		cin>>c[i];
    		s[c[i]][i%2]++;//某种颜色下奇数、偶数的可以组成三元组的格子数量
    		k[c[i]][i%2]=(k[c[i]][i%2]+a[i])%M;//累加该种情况下的格子上的数字和
    	}	
    	for(int i=1;i<=n;i++)
    	{
    		if(s[c[i]][i%2]>1)
    			ans=(ans+i*(a[i]*(s[c[i]][i%2]-2)%M+k[c[i]][i%2]))%M;//列举计算结果
    	}	
    	cout<<ans;
    	return 0;
    }
    
    • -4
      @ 2021-8-31 7:55:40

      是道数学题。。。

      • 1

      信息

      ID
      589
      时间
      1000ms
      内存
      128MiB
      难度
      5
      标签
      递交数
      41
      已通过
      17
      上传者