zoukankan      html  css  js  c++  java
  • LOJ P10171 牧场的安排 题解

    每日一题 day6 打卡

    Analysis

    状压dp

    dp[i][j]+=dp[i-1][k];

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<cmath>
     6 #define maxn 5000+10
     7 #define mod 100000000
     8 using namespace std;
     9 inline int read() 
    10 {
    11     int x=0;
    12     bool f=1;
    13     char c=getchar();
    14     for(; !isdigit(c); c=getchar()) if(c=='-') f=0;
    15     for(; isdigit(c); c=getchar()) x=(x<<3)+(x<<1)+c-'0';
    16     if(f) return x;
    17     return 0-x;
    18 }
    19 inline void write(int x)
    20 {
    21     if(x<0){putchar('-');x=-x;}
    22     if(x>9)write(x/10);
    23     putchar(x%10+'0');
    24 }
    25 int m,n;
    26 int t,x,cnt=0;
    27 int de[20][maxn],num[20];
    28 long long dp[20][maxn],ans;
    29 inline void count(int a)
    30 {
    31     cnt=0;
    32     for(int i=0;i<(1<<n);i++)
    33     {
    34         if((i&(i<<1))||(i&(i>>1))||(i&t)) continue;
    35         de[a][++cnt]=i;
    36     }
    37     num[a]=cnt;
    38 }
    39 int main()
    40 {
    41     memset(dp,0,sizeof(dp));
    42     m=read();n=read();
    43     for(int i=1;i<=m;i++)
    44     {
    45         t=0;
    46         for(int j=1;j<=n;j++)
    47         {
    48             x=read();
    49             t=(t<<1)+1-x;
    50         }
    51         count(i);
    52     }
    53     for(int i=1;i<=num[1];i++) dp[1][i]=1;
    54     for(int i=2;i<=m;i++)
    55     {
    56         for(int j=1;j<=num[i];j++)
    57         {
    58             for(int k=1;k<=num[i-1];k++)
    59             {
    60                 if(de[i][j]&de[i-1][k]) continue;
    61                 dp[i][j]+=dp[i-1][k];
    62             }
    63         }
    64     }
    65     for(int i=1;i<=num[m];i++)
    66     {
    67         ans+=dp[m][i];
    68         ans%=mod;
    69     }
    70     write(ans);
    71     return 0;
    72 }

    请各位大佬斧正(反正我不认识斧正是什么意思)

  • 相关阅读:
    js原型链
    charles重放攻击2
    charles攻击重放测试网页
    js逆向基础知识
    js重放攻击
    js逆向之 中间人攻击-js注入
    修改jadx默认内存
    frida-ida hook操作
    关于ios 9系统完全越狱frida安装不上的的问题
    IDA 静态调试和动态调试
  • 原文地址:https://www.cnblogs.com/handsome-zyc/p/11468770.html
Copyright © 2011-2022 走看看