博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA 1646 Edge Case
阅读量:6900 次
发布时间:2019-06-27

本文共 1106 字,大约阅读时间需要 3 分钟。

 

题意:

n个点连成一个圈,求没有公共点的边集的个数

 

dfs出前10个,发现

n=3  ans=4

n=4  ans=7

之后 ans[i]=ans[i-1]+ans[i-2]

 

#include
#include
#include
using namespace std;int ans[10001][15010];int main(){ int n; ans[3][0]=1; ans[3][1]=4; ans[4][0]=1; ans[4][1]=7; for(int i=5;i<=10000;i++) { for(int j=1;j<=max(ans[i-1][0],ans[i-2][0]);j++) { ans[i][j]+=ans[i-1][j]+ans[i-2][j]; ans[i][j+1]=ans[i][j]/10; ans[i][j]%=10; } ans[i][0]=max(ans[i-1][0],ans[i-2][0]); if(ans[i][ans[i][0]+1]) ans[i][0]++; } while(scanf("%d",&n)!=EOF) { for(int i=ans[n][0];i;i--) printf("%d",ans[n][i]); printf("\n"); }}

 

找规律代码:

#include
using namespace std;int y;bool ok(int x){ if(x==1) return true; if(x&(x<<1)) return false; int a,b; a=x&1; b=0; int sum=0; while(x) { sum++; b=x&1; x>>=1;} if(sum!=y) return true; return a!=b;}int main(){ for(int i=3;i<=10;i++) { y=i; int s=1<

 

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/7406535.html

你可能感兴趣的文章
Linux安全加固--精简启动项
查看>>
软件需求分析模板
查看>>
HDU - 5457 Hold Your Hand (Trie + 最小割)
查看>>
MySql 到 SQL Server(MSSQL)
查看>>
静态链表
查看>>
解决VS2005 VS2008 vs2010断点无效-源代码与原始版本不同
查看>>
NFS
查看>>
静电引发的悲剧
查看>>
在Angularjs中使用directive自定义指令实现attribute的继承
查看>>
新手学习编程的最佳方式是什么
查看>>
程序员零起步(四)——实习
查看>>
day6
查看>>
Aix下如何运行Java程序
查看>>
js简单总结
查看>>
隐马尔可夫HMM中viterbi算法
查看>>
ospf 协议配置方法及实例
查看>>
Python:解决中文字符串问题
查看>>
python模块之xml
查看>>
那些在学习iOS开发前就应该知道的事
查看>>
python多线程--Condition(条件对象)
查看>>