zoukankan      html  css  js  c++  java
  • 2018湖南省赛B题“2018”

    题面懒得敲了,反正看这篇博客的肯定知道题面。

    比赛时想按约数的一些性质分情况讨论出公式然后在合并,结果单考虑矩阵里出现2018和1009(与2互质,1009出现次数等于2)出现的情况就写了一长串公式,还推了很久。在考虑1出现的综合情况就直接GG了。。

    然后想到打表,奈何队友卡H题很久,最终因时间原因放弃来做B的时候已经冷静不下来了,没能打表成功,于是今天决定补一手打表。

    我首先敲了dfs暴搜二维数组的,然后类比的(找了半天BUG)终于成功打出来了。。还是要好好练练打表,比赛卡这样的题真难受。

     1 #include<cstdio>
     2 #define ll long long
     3 ll tot;
     4 int a[]={2018, 1009 , 2, 1};
     5 int m[100][100];
     6 int n,k;
     7 inline int gcd(int a,int b){return b?gcd(b,a%b):a;}
     8 void dfs(int x,int y)
     9 {
    10     if(x>=n){tot++;return ;}
    11     for(int j=0;j<4;j++)
    12     {
    13         if(x>0&&gcd(m[x-1][y],a[j])!=a[j])continue;
    14         if(y>0&&gcd(m[x][y-1],a[j])!=a[j])continue;
    15         m[x][y] = a[j];
    16         if(y+1==k)dfs(x+1,0);
    17         else dfs(x,y+1);
    18         if(!x&&!y)break;
    19     }
    20 }
    21 int main()
    22 {
    23     while(~scanf("%d%d",&n,&k)){
    24         tot = 0;
    25         dfs(0,0);
    26         printf("tot: %lld
    ",tot);
    27     }
    28     return 0;
    29 }
  • 相关阅读:
    debian7.2+nginx+mysql
    VirtualBox为虚拟OS硬盘扩容
    VirtualBox-Debian7.2-share
    linux 标准化
    linux user date
    Array方法总结
    GET和POST区别 / doGet()和doPost()的区别
    servlet错误:HTTP Status 405
    python类型转换、数值操作
    Architecture:话说科学家/工程师/设计师/商人
  • 原文地址:https://www.cnblogs.com/llllrj/p/9588854.html
Copyright © 2011-2022 走看看