zoukankan      html  css  js  c++  java
  • Codeforces 1485D

    Codeforces Round #701 (Div. 2) D. Multiples and Power Differences


    题意

    给定(n*m)的矩阵(A),要求构造出一个(n*m)的矩阵(B),满足

    • (1le b_{i,j}le 10^6)

    • (b_{i,j})(a_{i,j})的倍数

    • 矩阵(B)中每个元素与相邻任何元素的值之差的绝对值必须是某个正整数的四次方

    限制

    (1le n,mle 500)

    (1le a_{i,j}le 16)




    思路

    注意到(1le a_{i,j}le 16),首先想到的是应当先求出一个数(d),且(1)(16)任一数字都是(d)的因子

    (16!)显然过大,所以(d=lcm{1,2,cdots ,16}=720720lt 10^6)

    然后可以假设(B)矩阵所有元素都是(d),但题目要求的是相邻差值为某个正整数的四次方

    所以可以错位令其加上(A)矩阵中数的四次方,使得:

    对于任意一个值为(d)的位置,它与四周元素的差值为四周元素值的四次方

    对于任意一个值不为(d)的位置,它的四周元素值均为(d)(差值即自身的四次方)


    代码

    #include<bits/stdc++.h>
    using namespace std;
    
    const int d=2*2*2*2*3*3*5*7*11*13; //lcm(1~16)
    
    int main()
    {
        int n,m,a;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
            {
                scanf("%d",&a);
                if((i+j)&1)
                    printf("%d",d);
                else
                    printf("%d",d+a*a*a*a);
                putchar(j==m?'
    ':' ');
            }
        return 0;
    }
    

  • 相关阅读:
    vue proxy代理理解
    css样式鲜为人知的属性
    vue中实现元素选中互斥
    站长统计加载慢解决方法
    微信图片预览接口
    移动端兼容问题
    请求头和响应头
    清除缓存方法
    屏幕适配及rem
    清除多个定时器
  • 原文地址:https://www.cnblogs.com/stelayuri/p/14399689.html
Copyright © 2011-2022 走看看