zoukankan      html  css  js  c++  java
  • 牛客国庆集训派对Day6 B-Board

    链接:https://www.nowcoder.com/acm/contest/206/B
    来源:牛客网
     

    时间限制:C/C++ 1秒,其他语言2秒
    空间限制:C/C++ 1048576K,其他语言2097152K
    64bit IO Format: %lld

    题目描述

    恬恬有一个nx n的数组。她在用这个数组玩游戏:
    开始时,数组中每一个元素都是0。
    恬恬会做某些操作。在一次操作中,她可以将某一行的所有元素同时加上一个值,也可以将某一列的所有元素同时加上一个值。
    在几次操作后,一个元素被隐藏了。你能帮助她回忆隐藏的数是几吗?

    输入描述:

    第一行一个整数n(1≤ n≤ 1000)。
    接下来n行每行n个整数表示数组a。
    第(i+1)行的第j个元素表示aij(aij=-1或0≤ aij ≤ 10000)。-1表示隐藏的元素。

    输出描述:

    仅一个整数表示答案。

    示例1

    输入

    3
    1 2 1
    0 -1 0
    0 1 0

    输出

    1

    思路

    找到数值为-1的位置,记录下来所在行列,画个矩阵找下规律就出来了

    AC代码

    /*
    * @Author: WZY
    * @Date:   2018-10-09 16:36:48
    * @Last Modified by:   WZY
    * @Last Modified time: 2018-10-09 16:51:40
    */
    #include <stdio.h>
    #include <string.h>
    #include <iostream>
    #include <algorithm>
    #include <math.h>
    #include <limits.h>
    #include <map>
    #include <stack>
    #include <queue>
    #include <vector>
    #include <set>
    #include <string>
    #include <time.h>
    #define ll long long
    #define ull unsigned long long
    #define ms(a) memset(a,0,sizeof(a))
    #define pi acos(-1.0)
    #define INF 0x7f7f7f7f
    #define lson o<<1
    #define rson o<<1|1
    #define debug(...) cerr<<"["<<#__VA_ARGS__":"<<(__VA_ARGS__)<<"]"<<"
    "
    const double E=exp(1);
    const int maxn=1e3+10;
    const int mod=1e9+7;
    using namespace std;
    int a[maxn][maxn];
    int main(int argc, char const *argv[])
    {
    	ios::sync_with_stdio(false);
    	#ifndef ONLINE_JUDGE
    	    freopen("in.txt", "r", stdin);
    	    freopen("out.txt", "w", stdout);
    	    double _begin_time = clock();
    	#endif
    	int n;
    	cin>>n;
    	int x,y;
    	for(int i=0;i<n;i++)
    		for(int j=0;j<n;j++)
    		{
    			cin>>a[i][j];
    			if(a[i][j]==-1)
    				x=i,y=j;
    		}
    	if(x&&y)
    	{
    		cout<<a[x][0]+a[0][y]-a[0][0]<<endl;
    		return 0;
    	}
    	else
    	{
    		int res;
    		if(x==0&&y)
    			res=a[x+1][y]-a[1][0]+a[0][0];
    		else if(x&&y==0)
    			res=a[x][y+1]-a[0][1]+a[0][0];
    		else
    			res=a[0][1]+a[1][0]-a[1][1];
    		cout<<res<<endl;
    	}
    	#ifndef ONLINE_JUDGE
    	    long _end_time = clock();
    	    printf("time = %lf ms.", _end_time - _begin_time);
    	#endif
    	return 0;
    }
  • 相关阅读:
    < java.util >-- Set接口
    Codeforces 627 A. XOR Equation (数学)
    Codeforces 161 B. Discounts (贪心)
    Codeforces 161 D. Distance in Tree (树dp)
    HDU 5534 Partial Tree (完全背包变形)
    HDU 5927 Auxiliary Set (dfs)
    Codeforces 27E. Number With The Given Amount Of Divisors (暴力)
    lght oj 1257
    Codeforces 219D. Choosing Capital for Treeland (树dp)
    Codeforces 479E. Riding in a Lift (dp + 前缀和优化)
  • 原文地址:https://www.cnblogs.com/Friends-A/p/10324347.html
Copyright © 2011-2022 走看看