ACM--Genetic Code(POJ 2558)
2015-08-12 23:00
399 查看
<span style="font-family:Arial, Helvetica, sans-serif;">由于题目只要求一组解,所以在使用DSF算法时,递归的时候要有返回值,这样可以马上退出,求的一组解。</span>
<span style="font-family:Arial, Helvetica, sans-serif;">但如果是求出所有解,则无需返回值。</span>
<span style="font-family:Arial, Helvetica, sans-serif;"> </span>
<span style="font-family:Arial, Helvetica, sans-serif;"></span><pre name="code" class="cpp">#include<stdio.h> char a[5002]; char b[4]="NOP"; int Ok(int l) { int i,j; for(i=0;i<(l+1)/2;i++) { for(j=0;j<=i;j++) { if(a[l-i+j]!=a[l-2*i+j-1])break; } if(j>i)return 0; } return 1; } int fun(int i) { if(i>=5000) return 1; for(int j=0;j<3;j++) { a[i]=b[j]; if(!Ok(i)) continue; //fun(i+1); if(fun(i+1)) return 1; } return 0; } int main() { int n; fun(0); while(scanf("%d",&n)!=EOF,n) { for(int i=0;i<n;i++) printf("%c",a[i]); printf("\n"); } return 0; }
相关文章推荐
- c++,为什么要引入虚拟继承
- group by的参考地址
- final的含义
- 阻塞 与 非阻塞
- hdu 5375 Gray code(dp)
- 第10章:深入函数
- linux内存管理之malloc
- 【Android性能优化】Android-Lint:查错与代码优化利器
- c#学习之双冒泡运算符
- zoj 3688
- 数据解析
- iostream.h和iostream 区别
- UVALive 5099
- iOS笔记 Block和内存管理
- hdu 5374 Tetris(模拟)
- 找到并留住富有激情的问题解决者
- 8.12总结
- 自定义progressDialog~~~
- 弹出框返回值设定(浏览器兼容)
- How to Change the Size of a Box-Plot Label in MATLAB