zoukankan      html  css  js  c++  java
  • Codeforces 894B

    894B - Ralph And His Magic Field

    思路:

    当k为1时,如果n和m奇偶性不同,那么没有答案。

    可以证明,在其他情况下有答案,且答案为2^(n-1)*(m-1),因为前n-1行和m-1列确定后,最后一列和最后一行可以确定,且确定的最后一格不矛盾。

    可以采用在全为1的格子中把一些1换成-1的方法来证明以上两条结论。

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define pb push_back
    #define mp make_pair
    #define pii pair<int,int>
    #define mem(a,b) memset(a,b,sizeof(a))
    
    const int MOD=1e9+7;
    ll qpow(ll n,ll k)
    {
        ll ans=1;
        while(k)
        {
            if(k&1)ans=(ans*n)%MOD;
            n=(n*n)%MOD;
            k>>=1;
        }
        return ans;
    }
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(0);
        ll m,n;
        int k;
        cin>>m>>n>>k;
        if(k==1)
        {
            cout<<qpow(2,((m-1)%(MOD-1))*((n-1)%(MOD-1)));
        }
        else
        {
            if((m+n)&1)
            {
                cout<<0<<endl;
                return 0;
            }
            cout<<qpow(2,((m-1)%(MOD-1))*((n-1)%(MOD-1)));
        }
        return 0;
    }
  • 相关阅读:
    C#开发规范
    Win32API使用技巧 -- 置顶应用
    Windows开发常用快捷键
    MarkDown简单语法回顾
    样本分布
    复变函数
    set theory
    Oscar的数理统计笔记本
    Oscar的拓扑笔记本
    c语言总结
  • 原文地址:https://www.cnblogs.com/widsom/p/7872952.html
Copyright © 2011-2022 走看看