poj3295Tautology
http://poj.org/problem?id=3295
这几天补一补poj之前落下的题吧
枚举
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
#include<cmath>
using namespace std;
char s[],ko[];
int f[],ta[],ff[],p[];
int main()
{
int i,j,k;
ko['p'] = ;
ko['q'] = ;
ko['r'] = ;
ko['s'] = ;
ko['t'] = ;
while(gets(s)!=NULL)
{
if(s[]=='')
break;
int flag = ,g=,e=;
memset(ff,,sizeof(ff));
k = strlen(s);
for(i = ; i < k ;i++)
{
if(ko[s[i]]&&!ff[ko[s[i]]])
{
ff[ko[s[i]]] = ;
p[e++] = ko[s[i]];
}
}
for(i = ; i < (<<e) ; i++)
{
memset(f,,sizeof(f));g=;
for(j = ; j < e ; j++)
{
if(i&(<<j))
{
f[p[j]] = ;
}
}
for(j = k-; j>= ; j--)
{
if(s[j]>='A'&&s[j]<='Z')
{
if(s[j]=='K')
{
if(ta[g]==&&ta[g-]==)
ta[g-] = ;
else
ta[g-] = ;
g--;
}
else if(s[j]=='N')
{
if(ta[g])
ta[g] = ;
else ta[g] = ;
}
else if(s[j]=='A')
{
if(ta[g]==&&ta[g-]==)
ta[g-] = ;
else
ta[g-] = ;
g--;
}
else if(s[j]=='C')
{
if(ta[g]==&&ta[g-]==)
ta[g-] = ;
else ta[g-] = ;
g--;
}
else
{
if(ta[g]==ta[g-])
ta[g-] = ;
else
ta[g-] = ;
g--;
}
}
else
{
ta[++g] = f[ko[s[j]]];
}
}
if(!ta[g])
{
flag = ;
break;
}
}
if(!flag)
puts("tautology");
else
puts("not");
}
return ;
}
poj3295Tautology的更多相关文章
随机推荐
- GS玩家登录
玩家上线 这个过程看了很多很多次了,这里在看下 客户端打开,服务器收到libevent事件,然后new Channel这个过程都付给他各种指针,然后放到channel容器中 .客户端发送c2s_log ...
- share干什么的
share到底干什么的 //--------------------打开GameServer,share中加载------------------------- .加载nBodyID //玩家的nBo ...
- frequentism-and-bayesianism-chs-iv
frequentism-and-bayesianism-chs-iv 频率主义与贝叶斯主义 IV:Python的贝叶斯工具 这个notebook出自Pythonic Perambulations的 ...
- shell 运算
一个下午折腾一个脚本,shell好久不用,重新学起 一个小成果 size= ] do table=albums_index_${table_num} count=$size times= while ...
- Unity3D研究院之LZMA压缩文件与解压文件
原地址:http://www.xuanyusong.com/archives/3095 前两天有朋友告诉我Unity的Assetbundle是LZMA压缩的,刚好今天有时间那么就研究研究LZMA.它是 ...
- 对于Linux平台下C语言开发中__sync_函数的认识
reference:http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html#Atomic-Builtins A built ...
- POJ 3304 Segments (直线与线段是否相交)
题目链接 题意 : 能否找出一条直线使得所有给定的线段在该直线上的投影有一个公共点. 思路 : 假设存在一条直线a使得所有线段在该直线上的投影有公共点,则必存在一条垂直于直线a的直线b,直线b与所有线 ...
- 546A. Soldier and Bananas
等差数列: 以k为首相,k为公差,w个数量的和与n的大小关系 输出max(sum-0,0) Java程序 import java.util.Scanner; public class A546 ...
- online judge 提交代码应该注意的事项
首先,eclipse工程上出现红色的惊叹号,这个时候一般是工程的参考library或者build path的jar文件或者库文件缺失,可以右键工程,打开properties,点击 java build ...
- C语言预处理程序[转]
c语言预处理程序有三种,分别是: 1.包含头文件,如:#include <stdio.h> 2.宏定义(本质是字符串的替换) 如 :#define 宏名 串(宏体) #define ...