这道题说起来挺可惜的,当时纠结是用常数大但有可能减少递归层数的模还是用常数小但递归多的回溯纠结了好半天,最终错误的选择了模。导致T了20分,改成回溯就A了。

  先分析一下性质,我在考试的时候打表发现在数据范围内因子最多有240个,因此有可能是通过枚举因子进行计算,然后如果说对于一个块他的确可以把一棵树分为几块方法只有一种(不要问我为什么,我也不知道怎么证,但的确如此)那么我们的最坏复杂度就是O(240*n),比理论最大复杂度还多了一倍,这也是为什么当时我自己预估60分的原因,然而这就很尴尬了,这的确能过,因为我们只要搜索到一个不合法位置就可以直接return所以会快许多。而且,对于size小于当前check的我们就没有必要再去搜了,这会降低对于较大因子的时间复杂度。然后就很玄学的过了,额,过了……

 #include<iostream>
 #include<cstdlib>
 #include<cstdio>
 #include<cstring>
 #include<queue>
 #include<algorithm>
 #include<cmath>
 #include<map>
 #include<vector>
 #define N 1000005
 using namespace std;
 int size[N],fa[N],n,a[N];
 struct ro
 {
     int to,next;
 }road[N*];
 int zz1,zz,sx[N];
 void build(int x,int y)
 {
     zz++;
     road[zz].to=y;
     road[zz].next=a[x];
     a[x]=zz;
 }
 void dfs(int x)
 {
     size[x]=;
     ;i=road[i].next)
     {
         int y=road[i].to;
         if(y==fa[x])continue;
         fa[y]=x;
         dfs(y);
         size[x]+=size[y];
     }
 }
 ;
 bool yx;
 int dfs2(int x,int l)
 {
     ;
     ;i=road[i].next)
     {
         int y=road[i].to;
         if(y==fa[x])continue;
         if(size[y]>=l)
         {
             int k=dfs2(y,l);
             )
                 ;
             sum+=k;
         }
         else
         {
             sum+=size[y];
         }
         if(sum>l)
         {
             ;
         }
     }
     if(sum==l)
     {
         ;
     }
     else return sum;
 }
 void check(int l)
 {
     ,l);
     )
         ans++;
 }
 int main()
 {
     scanf("%d",&n);
     ;i<n;i++)
     {
         int x,y;
         scanf("%d%d",&x,&y);
         build(x,y);
         build(y,x);
     }
     ;i<n;i++)
     {
         )
         {
             zz1++;
             sx[zz1]=i;
         }
     }
     dfs();
     ;i<=zz1;i++)
         check(sx[i]);
     printf("%d\n",ans);
     ;
 }

9.18考试 第一题count题解的更多相关文章

  1. 9.18考试 第二题Dinner题解

    当时初步感觉是一个类似动归或者贪心的神题,然而由于本题已经给出顺序,贪心貌似并没有什么道理,所以放弃贪心.然后又由于这是一个环的问题,我想到了“合并石子”那种环转链的思路,然后就是一个O(n^2*m) ...

  2. 9.16考试 第一题 X国的军队题解

    这道题总体来看还是比较满意的.连想带打不超过半个小时,打了不到当时基本读懂后就感觉是贪心,但贪什么很重要,当时一开始想的是贪心死亡人数,从小到大搞,然后自己造了几个小数据,还好WA了,然后又列了一个式 ...

  3. C语言考试第一题详细过程

    1.计算 ,并输出其结果. 思路是先设计一个函数计算阶乘,再用循环,逐个求和. #include<stdio.h> int mul(int n) { int num,i; num=; ;i ...

  4. Google Kick Start 2019 C轮 第一题 Wiggle Walk 题解

    Google Kick Start 2019 C轮 第一题 Wiggle Walk 题解 题目地址:https://codingcompetitions.withgoogle.com/kickstar ...

  5. 【BZOJ4927】第一题 双指针+DP(容斥?)

    [BZOJ4927]第一题 Description 给定n根直的木棍,要从中选出6根木棍,满足:能用这6根木棍拼 出一个正方形.注意木棍不能弯折.问方案数. 正方形:四条边都相等.四个角都是直角的四边 ...

  6. 中国MOOC_面向对象程序设计——Java语言_期末考试编程题_1细胞自动机

    期末考试编程题 返回   这是期末考试的编程题 温馨提示: 1.本次考试属于Online Judge题目,提交后由系统即时判分. 2.学生可以在考试截止时间之前提交答案,系统将取其中的最高分作为最终成 ...

  7. HDU100题简要题解(2060~2069)

    这十题感觉是100题内相对较为麻烦的,有点搞我心态... HDU2060 Snooker 题目链接 Problem Description background: Philip likes to pl ...

  8. [算法 笔记]2014年去哪儿网 开发笔试(续)第一题BUG修正

    上一篇的blog地址为:http://www.cnblogs.com/life91/p/3313868.html 这几天又参加了一个家公司的笔试题,在最后的编程题中竟然出现了去哪儿网开发的第一题,也就 ...

  9. 《学习OpenCV》练习题第五章第一题ab

    这道题是载入一幅带有有趣纹理的图像并用不同的模板(窗口,核)大小做高斯模糊(高斯平滑),然后比较用5*5大小的窗口平滑图像两次和用11*11大小的窗口平滑图像一次是否接近相同. 先说下我的做法,a部分 ...

随机推荐

  1. Window Features 总览

    This overview discusses features of windows such as window types, states, size, and position. Window ...

  2. Android项目实战(四十四):Zxing二维码切换横屏扫描

    原文:Android项目实战(四十四):Zxing二维码切换横屏扫描 Demo链接 默认是竖屏扫描,但是当我们在清单文件中配置横屏显示的时候: <activity android:name=&q ...

  3. Kinect 开发驱动配置

    有几种配置方案 1.openNI+SensorKinect+PCL 的开发环境(pcl 标配) http://blog.csdn.net/chenxin_130/article/details/669 ...

  4. 浏览器中实现3D全景浏览

    如果你用过网页版的百度地图,你大概3D全景图浏览是一种怎样的酷炫体验:在一个点可以360度环顾周围的建筑.景色,当然也可以四周移动,就像身临其境. 科普 全景图共分为三种: ①球面全景图 利用一张全景 ...

  5. WCF nginx反向代理遇到的问题

    正常配置了nginx反向代理,其他java站点什么的都正常,就wcf总是失败.始终会跑如下异常: 由于 AddressFilter 在 EndpointDispatcher 不匹配,To 为“http ...

  6. 没有安装提供程序“System.Data.SqlServerCe.3.5”的解决方法

    在Windows 8.1系统下运行带数据库功能的应用,报错并提示:“System.InvalidOperationException”类型的未经处理的异常在 System.Data.Linq.dll ...

  7. MongoDB数据库和集合的基本操作

    非关系型数据库 命令区分大小写:命令结束符为回车(与MySQL不同之处) mongodb配置 sudo service mongodb start mongo mongodb基本概念 集合对应于关系型 ...

  8. RESTful API设计原则与规范

    RESTful API设计原则与规范 一.背景与基础概念 2 二.RESTful API应遵循的原则 3 1.协议(Protocol) 3 2.域名(ROOT URL) 3 3.版本(Versioni ...

  9. DUI-分层窗口两种模式(SetLayeredWindowAttributes和UpdateLayeredWindow两种方法各有利弊)

    LayeredWindow提供两种模式: 1.使用SetLayeredWindowAttributes去设置透明度, 完成窗口的统一透明,此时窗口仍然收到PAINT消息, 其他应用跟普通窗口一样. 2 ...

  10. Memcached在Linux系统下的安装和PHP开启 Memcached的 扩展 超级解决方案

    [项目背景]:阿里云ECS服务器,Linux(centos7.2 64位),环境部署使用的是阿里云一键安装包(LAMP)等 [项目需求]:linux安装memcached 和php开启Memcache ...