| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
为什么会TLE呢??代码如下
#include <cstdio>
using namespace std;
char s[7000];
bool calc(char s[], int pos, bool p, bool q, bool r, bool _s, bool t) {
if (s[pos] == 'N') return !calc(s,pos+1, p, q, r, _s, t);
else if (s[pos] == 'K') return calc(s, pos + 1, p, q, r, _s, t) && calc(s, pos + 2, p, q, r, _s, t);
else if (s[pos] == 'A') return calc(s, pos + 1, p, q, r, _s, t) || calc(s, pos + 2, p, q, r, _s, t);
else if (s[pos] == 'C') return (!(!calc(s, pos + 1, p, q, r, _s, t)) || calc(s, pos + 2, p, q, r, _s, t));
else if (s[pos] == 'E') return !(calc(s, pos + 1, p, q, r, _s, t) ^ calc(s, pos + 2, p, q, r, _s, t));
else if (s[pos] == 'p') return p;
else if (s[pos] == 'q') return q;
else if (s[pos] == 'r') return r;
else if (s[pos] == 's') return _s;
else if (s[pos] == 't') return t;
}
int main() {
scanf("%s", &s);
while (s[0] != '0') {
bool k = 1;
for (int arg = 0; arg < 32; arg++) {
bool p = arg & 1;
bool q = (arg & 2)/2;
bool r = (arg & 4)/4;
bool _s = (arg & 8)/8;
bool t = (arg & 16)/16;
if (!calc(s, 0, p, q, r, _s, t)) k = 0;
}
if (k) printf("tautology\n");
else printf("not\n");
scanf("%s", &s);
}
return 0;
}
为什么会TLE呢?很奇怪。
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator