hdu4277 DFS+SET
生活随笔
收集整理的這篇文章主要介紹了
hdu4277 DFS+SET
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:
? ? ? 給你一些木棍,問你可以組成多少個三角形..
思路:
? ? ? 給你一些木棍,問你可以組成多少個三角形..
思路:
? ? ?直接深搜,N很小深搜無壓力,也可以直接算出來,但我不會算..?
#include<stdio.h> #include<set> using namespace std; __int64 num[20]; int n; set<__int64>st; void dfs(__int64 a ,__int64 b ,__int64 c ,int ii) {if(ii == n + 1){if(a > b || a > c || b > c) return ;if(a && b && c && a + b > c){__int64 now = a * 225000000000 + b * 150000 + c;st.insert(now); }return ;}dfs(a + num[ii] ,b ,c ,ii + 1);dfs(a ,b + num[ii] ,c ,ii + 1);dfs(a ,b ,c + num[ii] ,ii + 1);return ; } int main () {int t ,i;scanf("%d" ,&t);while(t--){scanf("%d" ,&n);for(i = 1 ;i <= n ;i ++)scanf("%I64d" ,&num[i]);st.clear();dfs(0, 0 ,0 ,1);printf("%d\n" ,st.size());}return 0; }
總結
以上是生活随笔為你收集整理的hdu4277 DFS+SET的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu4268贪心
- 下一篇: hdu4400 BFS+STL