(15)

也是 DIV1 500

题意是给定 一个无向图 删去一条边以后 可不可以是完全二叉树。

细节点很多,开始做法居然求到桥去了,最近强联通写傻了。

最多1024-1个点 1024-1条边枚举

所以:

先枚举要删去的边,然后进行判断。

判断是否是一颗完全二叉树的话 要一个标记deep深度 max deep==h

然后还要看是否整个图强联通

还有一点 点的度 为1 ,2 ,3 其中度为2的只有一个 ,度为1的有2^(h-2)个

code:

 #include<iostream>
#include <string>
#include <vector>
#include<cmath>
#include<map>
#include<algorithm>
#include<string.h>
using namespace std;
#define N 123456 int head[N],dfn[N],low[N];
int vis[N];
int du[N];
struct edge
{
int v,next;
}e[N*];
int cnt; int ans; void add(int u,int v)
{
e[cnt].v=v;
e[cnt].next=head[u];
head[u]=cnt++;
} void dfs(int u,int t)
{
vis[u]=;
t++;
ans=max(ans,t);
for (int i=head[u];i!=-;i=e[i].next)
{
int v=e[i].v;
if (!vis[v])
{
dfs(v,t);
}
}
} void init()
{
cnt=;
memset(head,-,sizeof(head));
memset(dfn,,sizeof(dfn));
memset(low,,sizeof(low));
memset(vis,,sizeof(vis));
memset(du,,sizeof(du));
ans=;
} class TheKingsRoadsDiv2 {
public:
string getAnswer(int h, vector <int> a, vector <int> b) {
int k=;
for (int i=;i<=h;i++) k*=;
k--; for (int p=;p<a.size();p++)
{
init();
for (int j=;j<a.size();j++)
if (j!=p)
{
add(a[j],b[j]),add(b[j],a[j]);
du[a[j]]++;
du[b[j]]++;
} int u=;
int num=;
int flag=;
for (int i=;i<=k;i++) {
if (du[i]==) u=i;
else if (du[i]==) num++;
else if (!(du[i]==||du[i]==||du[i]==)) flag=;
} if (!u||num!=(k+)/) continue;
dfs(u,);
for (int i=;i<=k;i++)
if (!vis[i]) flag=;
if (flag||ans!=h) continue;
return "Correct";
}
return "Incorrect";
}
}; // Powered by FileEdit
// Powered by TZTester 1.01 [25-Feb-2003]
// Powered by CodeProcessor

topcoder 650 srm div2 1000pts的更多相关文章

  1. topcoder 650 srm

    500 遇到这种构造题 就给跪了 比赛的时候想很多方法 DP,贪心,模拟 发现越写越烦琐.看到别人出这么快,肯定又是奇葩思路. 后来居然想到 2^50的暴力 +剪枝 不过暴力肯定卡你 IDEA: 只要 ...

  2. TopCoder 603 div1 & div2

    div2 250pts MiddleCode 题意:s串长度为奇数时,将中间字符取掉并添加到t末尾:长度为偶数时,将中间两个较小的字符取掉并添加到末尾. 分析:直接做,学习了一下substr(s, p ...

  3. TopCoder 649 div1 & div2

    最近一场TC,做得是在是烂,不过最后challenge阶段用一个随机数据cha了一个明显错误的代码,最后免于暴跌rating,还涨了一点.TC题目质量还是很高的,非常锻炼思维,拓展做题的视野,老老实实 ...

  4. 【TopCoder】SRM151 DIV2 练习总结

    第一次做完整的SRM题,刷完感觉萌萌哒,不过自己对java中很多细节不熟练,还要边做题边google. 250分的题:判断字符串序列是否是前缀码,如果不是,返回第一个违反前缀码规则的字符串. 简单的暴 ...

  5. 【TopCoder】SRM 680 DIV 2

    1. BearPair之bigDistance1.1 题目概述在 <= 50的字符串中找位置i,j 满足(1) s[i] != s[j];(2) abs(i-j)尽可能大.若不存在返回-1, 否 ...

  6. 【TopCoder】SRM159 DIV2总结

    250分题:给出一些规则,问街道上哪些地方可以停车. 简单的模拟题,考察每条规则是否成立即可. 代码:StreetParking 500分题:实现集合的交,并和差运算. 交运算:一个数组放到集合中,遍 ...

  7. 【Topcoder】SRM158 DIV2总结

    250分题:给定一个4位字符串initial和rotate这个字符串的方式,然后再给另一个字符串current,问current能否由initial通过rotate得到,需要几次rotate? 简单的 ...

  8. 【Topcoder】SRM157 DIV2总结

    250分题:简单的二分,就是平常玩的猜数字游戏 代码:GitHub 500分题:给出一个员工一天的打卡时间段,要求求出员工这一天的工资.其中正常上班时间是6:00:00到18:00:00,薪水是wag ...

  9. 【TopCoder】SRM152 DIV2总结

    为什么平常刷的时候感觉还不错,比赛的时候只能做出来一道题=.= 250分题:大水题,根据题目规则把一个字符串翻译成数字,直接代码:GitHub 我是通过遍历一个个数出来的,看到大神的解法是把字符用‘- ...

随机推荐

  1. Java练习题02

    问题: 编程求一个整数数组的最大值.最小值.平均值和所有元素的和. 代码: public class Page99{     public static void main(String args[] ...

  2. 1   开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你。   本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的原则已经被许多现有的JDBC应用程序编译运行并验证过。 这些指导原则包括:    正确的使用数据库MetaData方法    只获取需要的数据    选用最佳性能的功能    管理连

    1 开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你. 本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的 ...

  3. Angular和SAP C4C的事件处理队列

    Angular 我们在Angular框架的代码里能看到一个名为processQueue的函数: 这个函数是通过$scope.$apply启动的: 核心代码位于一个for循环里,循环体是一个存储异步处理 ...

  4. Django 你需要了解的入门操作

    创建一个django project   (我的版本是1.11.11) django-admin startproject mysite cd mysite 当前目录下会生成mysite的工程,目录结 ...

  5. 图片充当li标签列表标志

    默认情况下,浏览器使用一个黑圆圈作为列表标志,可以用图片取代它: ul {list-style: none} ul li{ background-image: url("img/logo_0 ...

  6. resnet.caffemodel

    http://blog.csdn.net/baidu_24281959/article/details/53203757

  7. Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/config/spring/applicationContext.xml]

    在搭建SpringMVC框架的时候遇到了这个问题 问题的原因: 就是没有找到applicatoincontext.xml这个文件, 因为idea自动生成的路径不正确 因此需要再web.xml里面, ( ...

  8. C指针与数组之间的细节

    看以下代码: #include <stdio.h> void f(char**); int main() { char *argv[] = { "ab", " ...

  9. minGW64编译Qt

    1.安装minGW64,设置bin目录到环境变量Path 2.cmd 到qt的Src目录 3.configure -debug-and-release -opensource -prefix &quo ...

  10. spoj-TSUM Triple Sums

    题目描述 题解: 很吊的容斥+$FFT$,但是并不难. 首先,由于有重复,我们要容斥. 怎么办? 记录三个多项式, 只取一个:$w1$; 相同物体拿两个:$w2$; 相同物体拿三个:$w3$; 然后答 ...