hdu 4277 爆搜 set 去重
来源:互联网 发布:阿里云 禁止ip访问 编辑:程序博客网 时间:2024/04/29 17:26
题目:
给出n条边,每条边有一定的长度,现在要用所有的边围成三角形,问能够围成多少个不同的三角形(三边至少有一边不等)。
#include<iostream>#include<algorithm>#include<cstdio>#include<set>using namespace std;int n,t,edge[17];int ans,sum;set<pair<int,int> >s;int min(int a,int b){ return a<b?a:b;}void dfs(int pos,int a,int b,int c){ if(pos==n) { int min2=min(a,b); int e1,e2,e3; e1=min(min2,c); if(e1==a) { e2=min(b,c); } else if(e1==b) { e2=min(a,c); } else e2=min(a,b); e3=sum-e1-e2; if(e1+e2<=e3) return; if(e3-e1>=e2) return; if(s.find(make_pair(e1,e2))!=s.end()) return; ans++; s.insert(make_pair(e1,e2)); return ; } dfs(pos+1,a+edge[pos],b,c); dfs(pos+1,a,b+edge[pos],c); dfs(pos+1,a,b,c+edge[pos]);}int main(){ scanf("%d",&t); while(t--) { scanf("%d",&n); s.clear(); ans=sum=0; for(int i=0;i<n;i++) { scanf("%d",&edge[i]); sum+=edge[i]; } dfs(1,edge[0],0,0); printf("%d\n",ans); } return 0;}
- hdu 4277 爆搜 set 去重
- HDU 4277 dfs+set去重
- HDU 4277 USACO ORZ (暴力搜索+set去重)
- set 去重
- set去重
- set 去重
- set hashSet 去重
- set集合去重
- set集合(去重)
- Python 巧用set()去重
- set 去重对象Object
- java Set 去重处理
- 解构 Set 数组去重
- Java合并两个文件,Set去重。
- 利用set集合进行去重
- 【java】利用set集合特性去重
- USACO ORZ(DFS+set去重)
- 【java】利用set集合特性去重
- 复选框(checkbox)全选--js代码
- 文字编码 历史
- js中选择html-table中的元素值
- 想念那一池莲花
- vs2010dumpbin 查看静态库的函数
- hdu 4277 爆搜 set 去重
- 笔记——创建一个功能模块的笔记!
- java上机第三周 任务1 分数的加法运算编程
- mysql binlog binlog_cache_size
- LINUX下的压力工具
- 委托应用、类库【我的个天啊,电脑你可不可以好好的啊~!有空一定要学学电脑维修】
- Subversion(svn)服务器端配置
- 特征提取代码
- hdu 3032 Nim or not Nim? (SG打表找规律)