`
mayi_hetu
  • 浏览: 15585 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

poj3295 构造法

    博客分类:
  • poj
 
阅读更多

一个循环是32次,列举pqrst所有的值的情况,如果32种情况得到的值相同则为正确的。

和计算器比较像,类似算式表达式的前缀式,用递归解

 

列举32种情况

for(i=0; i<32; ++i)
  {

  switch( str[pos] )
  {
  case 'p':return i&1;
  case 'q':return i>>1&1;
  case 'r':return i>>2&1;
  case 's':return i>>3&1;
  case 't':return i>>4&1;

  }

}

开始时脑门夹到了,用

  {
  case 'p':return i&1;
  case 'q':return i&2;
  case 'r' :return i&4;
  case 's':return i&8;
  case 't':return i&16;

  }

结果返回了1 2 4 8 16,不是1

 

#include <stdio.h>
#include <string.h>
char str[130];
int pos;
int judge(char * str,int i)
{
 ++pos;
  switch( str[pos] )
  {
  case 'p':return i&1;
  case 'q':return i>>1&1;
  case 'r':return i>>2&1;
  case 's':return i>>3&1;
  case 't':return i>>4&1;
  case 'K':return judge(str,i)&judge(str,i);
  case 'A':return judge(str,i)|judge(str,i);
  case 'N':return !judge(str,i);
  case 'C':return !judge(str,i)|judge(str,i);
  case 'E':return !(judge(str,i)^judge(str,i));
  }
}

int main()
{
 int i,len,flag;
// freopen("test","r",stdin);
 while(scanf("%s",str),str[0]!='0')
 {
  flag = 1;
  for(i=0; i<32; ++i)
  {
   pos = -1;
   if( !judge(str,i) )
   {
    flag = 0;
    break;
   }
  }
  if(flag)printf("tautology\n");
  else printf("not\n");
 }
 return 0; 
}

分享到:
评论

相关推荐

    POJ经典例题

    ### POJ经典例题知识点解析 #### 一、概述 POJ(Peking University Judge Online)是中国北京大学设立的一个在线评测系统,旨在为编程爱好者提供一个练习算法与数据结构的平台。POJ上提供了大量的编程题目,覆盖了...

    POJ算法题目分类

    * 构造法:构造法是指通过构造一个数据结构来解决问题的方法,如 poj3295。 * 模拟法:模拟法是指通过模拟问题的过程来解决问题的方法,如 poj1068、poj2632、poj1573、poj2993、poj2996。 二、图算法 图算法是...

    poj题目分类

    * 构造法:通过构造解来解决问题,例如 poj3295。 * 模拟法:通过模拟问题的过程来解决问题,例如 poj1068、poj2632、poj1573、poj2993、poj2996。 2. 图算法: * 图的深度优先遍历和广度优先遍历:例如 poj1860...

    poj各种分类

    这种策略在poj3295这类构造法题目中尤为适用,同时也常见于递归和动态规划中。 #### 模拟法 模拟法是对题目场景的直接模拟,适用于逻辑清晰、规则明确的问题,如poj1068和poj2632。虽然这种方法直观易懂,但在...

    POJ题目简单分类(ACM)

    - **构造法**:直接构造出满足条件的解,如poj3295。 - **模拟法**:按照题目描述的逻辑进行编程模拟,如poj1068、poj2632等。 2. **图算法**: - **深度优先遍历和广度优先遍历**:是图的基本操作,用于搜索图...

    poj算法题目实现.zip_algorithm_arrangement4hv_conditionyis_poj problems

    通过建立一个二维数组来表示问题的约束,然后使用回溯法逐步构造解。 4. poj1201 "Sieve"(筛法) 题目要求计算一定范围内的素数。这可以通过埃拉托斯特尼筛法(Sieve of Eratosthenes)高效地解决,先将所有数字...

    POJ1496-Word Index

    哈希函数的设计需要考虑到哈希冲突的解决策略,如链地址法或开放寻址法。 3. **查找算法**:在哈希表或其他数据结构中查找特定单词,可能需要用到线性查找、二分查找或哈希查找。对于大量数据,高效查找算法是必不...

    POJ 分类题目 txt文件

    数论中GCD(最大公约数)和LCM(最小公倍数)的计算,以及多项式的乘法和除法,都是经常遇到的问题。例如,题目poj3101就涉及到GCD的计算。 ### 6. 字符串算法 字符串算法处理字符串的匹配、分割、排序等问题,...

    POJ 分类题目

    - **定义**:构造法是通过构造一个符合题目要求的模型来解决问题。 - **示例题目**: - poj3295 - poj1831 - poj3239 - **应用场景**:适用于需要构造特定模型或结构的问题。 **6. 模拟法** - **定义**:模拟法...

    字典树练习 POJ 1056

    4. **优化**:为了节省空间,可以考虑使用链式前缀法,即只有当一个节点有多个子节点时才分配一个节点,否则将子节点直接存储在父节点的数组中。 5. **Java实现**:使用类和对象来表示字典树的节点,创建相应的插入...

    ACMer需要掌握的算法讲解 (2).docx

    * 构造法:POJ3295、POJ3259、POJ1062、POJ2253、POJ1125、POJ2240 * 最小生成树算法:prim、kruskal、POJ1789、POJ2485、POJ1258、POJ3026 * 拓扑排序:POJ1094 * 串算法:POJ1035、POJ3080、POJ1936 * 哈希表和二...

    ACM常用算法及其相应的练习题.docx

    * 构造法:poj3295 * 模拟法:poj1068, poj2632, poj1573, poj2993, poj2996 二、图算法 * 图的深度优先遍历和广度优先遍历 * 最短路径算法:dijkstra, bellman-ford, floyd, heap+dijkstra + poj1860, poj3259, ...

    强大的POJ分类——各类编程简单题及其算法分类

    5. **构造法**:直接构造出满足条件的解,如POJ3295。 6. **模拟法**:按照题目描述的逻辑进行模拟操作,如POJ1068、2632、1573、2993和2996。 ### 图算法 1. **深度优先遍历(DFS)** 和 **广度优先遍历(BFS)**...

    acm 分类 北大

    - 构造法:直接构建解决方案,如POJ3295。 - 模拟法:按照实际过程进行操作,如POJ1068和POJ2632。 2. **图算法** - 深度优先遍历和广度优先遍历:遍历图中的所有节点,如POJ1062。 - 最短路径算法:包括...

    ACM算法总结大全——超有用!

    5. 构造法:直接构造问题的解决方案,如poj3295中的问题。 6. 模拟法:通过模拟问题的实际情况来求解,如poj1068、poj2632、poj1573、poj2993和poj2996。 二、图算法 1. 图的深度优先遍历(DFS)和广度优先遍历...

    ACMer需要掌握的算法讲解.docx

    5. 构造法(poj3295, poj3259, poj1062, poj2253, poj1125, poj2240) 6. 最小生成树算法(prim, kruskal)(poj1789, poj2485, poj1258, poj3026) 7. 拓扑排序(poj1094) 8. 串(poj1035, poj3080, poj1936) 9. ...

    POJ题目分类

    - **示例题目**: poj3295 - **知识点**: - **贪心算法适用条件**:贪心选择性质和最优子结构性质。 - **应用场景**:活动选择问题、霍夫曼编码、最优装载问题等。 #### 4. 动态规划 - **内容**: 把复杂的问题...

    ACM常用算法及其相应的练习题 (2).docx

    (5) 构造法:poj3295 (6) 模拟法:poj1068, poj2632, poj1573, poj2993, poj2996 二、图算法 本部分涵盖了图算法,包括图的深度优先遍历和广度优先遍历、最短路径算法、最小生成树算法、拓扑排序、二分图的最大...

    北大acm试题

    构造法和模拟法在poj3006、poj2255、poj3094等题目中有所涉及。 二、图算法 图算法在ACM竞赛中占据重要地位,包括深度优先遍历、广度优先遍历、最短路径算法(如Dijkstra、Bellman-Ford、Floyd和堆+Dijkstra)、...

Global site tag (gtag.js) - Google Analytics