zoukankan      html  css  js  c++  java
  • poj3295Tautology

    http://poj.org/problem?id=3295

    这几天补一补poj之前落下的题吧 

    枚举

      1 #include <iostream>
      2 #include<cstdio>
      3 #include<cstring>
      4 #include<algorithm>
      5 #include<stdlib.h>
      6 #include<cmath>
      7 using namespace std;
      8 char s[101],ko[510];
      9 int f[10],ta[110],ff[10],p[10];
     10 int main()
     11 {
     12     int i,j,k;
     13     ko['p'] = 1;
     14     ko['q'] = 2;
     15     ko['r'] = 3;
     16     ko['s'] = 4;
     17     ko['t'] = 5;
     18     while(gets(s)!=NULL)
     19     {
     20         if(s[0]=='0')
     21         break;
     22         int flag = 0,g=0,e=0;
     23         memset(ff,0,sizeof(ff));
     24         k = strlen(s);
     25         for(i = 0 ; i < k  ;i++)
     26         {
     27             if(ko[s[i]]&&!ff[ko[s[i]]])
     28             {
     29                 ff[ko[s[i]]] = 1;
     30                 p[e++] = ko[s[i]];
     31             }
     32         }
     33         for(i = 0 ; i  < (1<<e) ; i++)
     34         {
     35             memset(f,0,sizeof(f));g=0;
     36             for(j = 0 ; j < e ; j++)
     37             {
     38                 if(i&(1<<j))
     39                 {
     40                     f[p[j]] = 1;
     41                 }
     42             }
     43             for(j = k-1; j>=0 ; j--)
     44             {
     45                 if(s[j]>='A'&&s[j]<='Z')
     46                 {
     47                     if(s[j]=='K')
     48                     {
     49                         if(ta[g]==1&&ta[g-1]==1)
     50                         ta[g-1] = 1;
     51                         else
     52                         ta[g-1] = 0;
     53                         g--;
     54                     }
     55                     else if(s[j]=='N')
     56                     {
     57                         if(ta[g])
     58                         ta[g] = 0;
     59                         else ta[g] = 1;
     60                     }
     61                     else if(s[j]=='A')
     62                     {
     63                         if(ta[g]==0&&ta[g-1]==0)
     64                         ta[g-1] = 0;
     65                         else
     66                         ta[g-1] = 1;
     67                         g--;
     68                     }
     69                     else if(s[j]=='C')
     70                     {
     71                         if(ta[g]==1&&ta[g-1]==0)
     72                         ta[g-1] = 0;
     73                         else ta[g-1] = 1;
     74                         g--;
     75                     }
     76                     else
     77                     {
     78                         if(ta[g]==ta[g-1])
     79                         ta[g-1] = 1;
     80                         else
     81                         ta[g-1] = 0;
     82                         g--;
     83                     }
     84                 }
     85                 else
     86                 {
     87                     ta[++g] = f[ko[s[j]]];
     88                 }
     89             }
     90             if(!ta[g])
     91             {
     92                 flag = 1;
     93                 break;
     94             }
     95         }
     96         if(!flag)
     97         puts("tautology");
     98         else
     99         puts("not");
    100     }
    101     return 0;
    102 }
    View Code
  • 相关阅读:
    Cpp -- static变量不属于类的实例
    单例模式
    WebView android
    网络编程之一
    初涉json
    初涉XML
    关于JSON的GSON
    网络编程(一)
    硬件51
    重拾C之数据
  • 原文地址:https://www.cnblogs.com/shangyu/p/3523139.html
Copyright © 2011-2022 走看看