zoukankan      html  css  js  c++  java
  • BJ2011集训/BZOJ2321 星器

    对于一行上的两个星星,假设它们的坐标为(x1,x2)
    (x1->x1+1)
    (x2->x2-1)
    ((x1+1)^2=x1^2+1+2*x1)
    ((x2-1)^2=x2^2+1-2*x2)
    变化量=2*(x2-x1+1)=2乘一次释放的能量
    考虑是二维的,所以我们定义一个星星的能量为(x^2+y^2),算出来初始局面的能量和,和终结局面的能量和,做差/2即是答案。

    代码如下:

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #define MAXN 300
    using namespace std;
    int n,m;
    int k[MAXN][MAXN];
    long long ans;
    int main()
    {
    	scanf("%d%d",&n,&m);
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=m;j++)
    		{
    			scanf("%d",&k[i][j]);
    			ans+=1ll*k[i][j]*i*i+1ll*k[i][j]*j*j;
    		}
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=m;j++)
    		{
    			scanf("%d",&k[i][j]);
    			ans-=1ll*k[i][j]*i*i+1ll*k[i][j]*j*j;
    		}
    	printf("%lld
    ",ans/2);
    }
    
  • 相关阅读:
    文件读取原理和文件删除原理
    day 1 随堂作业
    day 2 随堂作业
    day 3 随堂作业
    day 4 随堂作业
    day 5 随堂作业
    day 6 随堂作业
    day 7 随堂作业
    day 8 随堂作业
    day 9 随堂作业
  • 原文地址:https://www.cnblogs.com/fengxunling/p/10262333.html
Copyright © 2011-2022 走看看