zoukankan      html  css  js  c++  java
  • AtCoder Grand Contest 016 C

    题目传送门:https://agc016.contest.atcoder.jp/tasks/agc016_c

    题目大意:

    给定整数(H,W,h,w),你需要判断是否存在满足如下条件的矩阵,如果存在,则输出任意一种可能的方案

    • 矩阵是(H)(W)
    • 矩阵的每个元素的权值在([-10^9,10^9])之间
    • 矩阵的所有元素权值和为正
    • 任意大小为(h×w)的子矩阵的元素权值和为负

    构造题一般都是智商题……首先(\%\%\%wzy)

    既然子矩阵的值是负数,那么我们就尽可能让它负的少一点,比如-1;构造的时候,我们应该让负权值元素尽量少……于是我们在所有((k_1×h,k_2×w))的地方放上负权值……

    最后判断是否可行即可

    /*program from Wolfycz*/
    #include<cmath>
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    typedef long long ll;
    typedef unsigned int ui;
    typedef unsigned long long ull;
    inline char gc(){
    	static char buf[1000000],*p1=buf,*p2=buf;
    	return p1==p2&&(p2=(p1=buf)+fread(buf,1,1000000,stdin),p1==p2)?EOF:*p1++;
    }
    inline int frd(){
    	int x=0,f=1; char ch=gc();
    	for (;ch<'0'||ch>'9';ch=gc())	if (ch=='-')	f=-1;
    	for (;ch>='0'&&ch<='9';ch=gc())	x=(x<<3)+(x<<1)+ch-'0';
    	return x*f;
    }
    inline int read(){
    	int x=0,f=1; char ch=getchar();
    	for (;ch<'0'||ch>'9';ch=getchar())	if (ch=='-')	f=-1;
    	for (;ch>='0'&&ch<='9';ch=getchar())	x=(x<<3)+(x<<1)+ch-'0';
    	return x*f;
    }
    inline void print(int x){
    	if (x<0)	putchar('-'),x=-x;
    	if (x>9)	print(x/10);
    	putchar(x%10+'0');
    }
    const int N=5e2,inf=1e9;
    int V[N+10][N+10];
    int main(){
    	int n=read(),m=read(),h=read(),w=read();
    	int v=3999,mv=-(h*w-1)*v-1,sum=0;
    	for (int i=1;i<=n;i++)
    		for (int j=1;j<=m;j++)
    			sum+=V[i][j]=(i%h==0&&j%w==0)?mv:v;
    	if (sum<=0)	printf("No
    ");
    	else{
    		printf("Yes
    ");
    		for (int i=1;i<=n;i++){
    			for (int j=1;j<=m;j++)	printf("%d ",V[i][j]);
    			putchar('
    ');
    		}
    	}
    	return 0;
    }
    
  • 相关阅读:
    DOM事件模型
    Javascript 跨域
    浏览器内核及差异
    对WEB标准的理解
    SVN权限解析规则详解
    一款成熟的前端框架——Bootstrap
    终于可以发文了
    一些感想
    Linux升级nodejs及多版本管理
    zepto 自定义build
  • 原文地址:https://www.cnblogs.com/Wolfycz/p/10165774.html
Copyright © 2011-2022 走看看