hdu 4705 Y(多校赛第十场)
来源:互联网 发布:政治大纲解析 知乎 编辑:程序博客网 时间:2024/06/10 01:48
题目链接:点击打开链接
题目大意:在一树上的点集合『a,b,c』,使得没有simple path
分析:正向分析貌似很多种情况啊,所以想反面。
小菜鸟一枚啊,所以第一次T了啊TT。
这种DFS太暴力了,怎么会不T??附上代码,以示警告。
参考了下大神的代码,点击打开链接
仍用DFS,这次将3点看为一条线上的枚举中间这个点,但是两边的点完全有可能重复选择对方,所以最后/2。
刚才忘记打开栈开关了= =WA了
学习了打开栈开关
#pragma comment(linker, "/STACK:16777216")#include<cstdio>#include<cstdlib>#include<vector>#include<iostream>#include<cstring>using namespace std;vector<int>node[100005];bool visit[100005];__int64 sum;int n;int dfs(int k){ int i,j,tmp,count=0; visit[k]=true; for(i=0;i<node[k].size();i++) { j=node[k][i]; if(!visit[j]) { tmp=dfs(j); count+=tmp; sum+=(__int64 )tmp*(n-1-tmp); } } if(count) sum+=(__int64)count*(n-1-count); count++; return count;}int main(){ int i,u,v,temp; __int64 ans; while(~scanf("%d",&n)) { for(i=0;i<=n;i++) node[i].clear(); memset(visit,false,sizeof(visit)); sum=0; for(i=0;i<n-1;i++) { scanf("%d %d",&u,&v); node[u].push_back(v); node[v].push_back(u); } dfs(1); ans=(__int64)n*(n-1)*(n-2)/6;//之前没有加(__int64)使得WA了= = printf("%I64d\n",ans-(sum)/2); } return 0;}
- hdu 4705 Y(多校赛第十场)
- hdu 4705 Y 多校第十场
- HDU 4705 Y 多校训练第十场1010
- hdu 4705 Y/杭电2013年多校第十场1010 组合
- HDUOJ 4705 2013多校第十场第10题 Y
- hdu 4704--sum(多校赛第十场)快速幂
- 2013 多校第九场 hdu 4705 Y(枚举 + 树上的计数)
- hdu 4704 Sum 多校第十场
- hdu 4696 Answers 多校第十场
- HDU 4705 Y
- HDU 4705 Y
- hdu 4705 Y
- Hdu 4705 Y -- 树形
- hdu 4705 Y
- HDU 4705 Y
- hdu 4705 Y
- hdu 4705 Y (树形dp)
- 树上计数-hdu-4705-Y
- IE:通过 href 调用函数,参数乱码
- Connection
- poj1125 Floyd算法
- glance 文件清单
- hdu 1114 Piggy-Bank
- hdu 4705 Y(多校赛第十场)
- 谣言止于下一个谣言!
- NSString类
- IOS-TextField知多少 分类: IOS编程
- 反素数的应用 hdu4228 zoj2562
- Java Programming : Polymorphic Arguments
- ubuntu下不能以根用户身份运行 Google Chrome 浏览器
- Poj 1364 King
- ava的几种对象(PO,VO,DAO,BO,POJO)解释