别想多了我怎么可能会正解呢2333,我只会30分暴力(好像现场拿30分已经不算少了2333,虽然我局的30分不是特别难想)。

首先求k次转化的点数显然可以变成求k-1次转化之后的边数,所以我们可以先让k强行减去1,然后再去求k次转化之后的图的边数。

这个时候的k就可能等于1,2,3,4,5,6,7,8,,,还不是很好求。

但是题目中初始给出的图是一颗树啊!也就是说我们完全可以用N^2的代价暴力进行一次转化,因为树只有N-1条边,也就是转化一次之后的图的点数就是N-1,边数最多也是(N-1)*(N-2)/2 [ 考虑菊花图233 ]。

这样再暴力转化一次图后,k的可能取值变成了0,1,2,3,4,5,6,7。

然后此时k=0的数据就可以直接输出转化之后的图的边数了,这没啥好说的。

如果k=1的话,我们只需要知道再转化一次后的图的边数就行了。这里我推了一个结论 : 如果一个图的每个节点i的度数是 D[i] ,那么转化一次之后的图的边数就是 ΣC(D[i],2) 。考虑转化之后的图中的边的两个端点是上一个图中邻接(有公共点)一对边,而且两条边邻接仅会有一个公共点,也就是转化之前的图中每个点的影响是独立的,所以我们直接考虑每个点带来的贡献然后求和一下就好了。

k=2的情况,根据上面的推论,我们只需要知道转化一次之后的图中每个点的度数然后就可以知道转化两次之后的图的边数。显然转化一次之后的图的点的度数就是原图中每条边的邻接的边数,所以我们也可以直接算出边的邻接数然后套用k=1的做法。

我可能是唯一一个没有A题却写博客的人了2333,还是太菜。

#include<bits/stdc++.h>
#define ll long long
const int maxn=5005;
const int ha=998244353;
int n,m,u[maxn],v[maxn],k,deg[maxn];
int ans=0,uu[maxn*maxn],vv[maxn*maxn];
int md[maxn*maxn]; inline int add(int x,int y){
x+=y;
return x>=ha?x-ha:x;
} inline void transform(){
int N=m,M=0; for(int i=1;i<=N;i++)
for(int j=i+1;j<=N;j++) if(u[i]==u[j]||u[i]==v[j]||v[i]==u[j]||v[i]==v[j]){
uu[++M]=i,vv[M]=j,deg[i]++,deg[j]++;
} n=N,m=M;
} inline void calc1(){
for(int i=1;i<=n;i++) ans=add(ans,deg[i]*(ll)(deg[i]-1)/2%ha);
printf("%d\n",ans);
} inline void calc2(){
for(int i=1;i<=m;i++) md[i]=deg[uu[i]]+deg[vv[i]]-2;
for(int i=1;i<=m;i++) ans=add(ans,md[i]*(ll)(md[i]-1)/2%ha);
printf("%d\n",ans);
} int main(){
scanf("%d%d",&n,&k),m=n-1,k--;
for(int i=1;i<=m;i++) scanf("%d%d",u+i,v+i);
transform(),k--;
if(!k) printf("%d\n",m);
else if(k==1) calc1();
else calc2();
return 0;
}

  

[ZJOI 2018] 线图的更多相关文章

  1. 【ZJOI 2018】线图(树的枚举,hash,dp)

    线图 题目描述 九条可怜是一个热爱出题的女孩子. 今天可怜想要出一道和图论相关的题.在一张无向图 $G$ 上,我们可以对它进行一些非常有趣的变换,比如说对偶,又或者说取补.这样的操作往往可以赋予一些传 ...

  2. matplotlib箱线图与柱状图比较

    代码: # -*- coding: utf-8 -*- """ Created on Thu Jul 12 16:37:47 2018 @author: zhen &qu ...

  3. ZJOI 2018 一试记

    ZJOI一试几天,天微冷,雨.倒是考试当天近午时分出了太阳. 开题前的一刻,心情反而平静了,窗外泛着淡金色的日光照进来,仿佛今天的我并不是所谓来冲击省队,而只是来经历一场洗礼. 开题了,虽然有一点小插 ...

  4. 一起来玩echarts系列(一)------箱线图的分析与绘制

    一.箱线图 Box-plot 箱线图一般被用作显示数据分散情况.具体是计算一组数据的中位数.25%分位数.75%分位数.上边界.下边界,来将数据从大到小排列,直观展示数据整体的分布情况. 大部分正常数 ...

  5. K线图学习

    本博文(适合入门的股民朋友)内容来自网络,股市有风险,入市需谨慎 一.起源 K线图(Candlestick Charts)又称蜡烛图.日本线.阴阳线.棒线等,常用说法是“K线”,起源于日本十八世纪德川 ...

  6. [python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上

    将沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上 原理:python读取前一次处理完的计算5日后涨跌幅输出的csv文件 文件名前加"[paint]" 安照通达信的画图文件和板 ...

  7. matplotlib绘制多组 散点连线图【用于对比】待实现

    绘制散点+连线图: http://www.cnblogs.com/aaronhoo/p/5150596.html http://zhidao.baidu.com/link?url=Q1b7NG8eEz ...

  8. Wijmo金融图表系列之平均K线图&砖形图

    2015年7月16日将会发布有史以来最令人兴奋的控件-Wijmo 金融图表,它的一体化设计为单个自定义集合提供了所有主要的金融图表,这是市场上的其他控件都不具备的独一无二的好处.它像Wijmo其他任意 ...

  9. Highcharts candlestick(K线图)案例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. 大数据学习系列之Hadoop、Spark学习线路(想入门大数据的童鞋,强烈推荐!)

    申明:本文出自:http://www.cnblogs.com/zlslch/p/5448857.html(该博客干货较多) 1 Java基础: 视频方面:          推荐<毕向东JAVA ...

  2. iOS 静态库,动态库与 Framework

    iOS 静态库,动态库与 Framework     静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我们会用到库呢 ...

  3. sha1、base64、ase加密

    <!DOCTYPE html><html><head><title>sha1.base64.ase加密</title><meta ch ...

  4. python:mysql增量备份

    模块:MySQLdb Crypto加密 ConfigParser加载配置 mydb.py #!/usr/bin/env python #coding=utf-8 import MySQLdb as m ...

  5. Spring容器的理解

    控制反转(IOC,Inversion Of Contorl)和依赖注入(DI,Dependency Injection) IOC是一个宽泛的概念:对某事物的控制权由A转移到B. DI是实现IOC的一种 ...

  6. pytorch导入错误so: undefined symbol: _Z11libshm_initPKc

    首先删除torch文件 或者直接卸载 删除会更彻底 https://blog.csdn.net/qq_37674858/article/details/88870124 但是会发现卸载重装pytorc ...

  7. 【转载】CentOS 7安装Python3.5,并与Python2.7兼容并存

    CentOS 7下安装Python3.5 CentOS7默认安装了python2.7.5,当需要使用python3的时候,可以手动下载Python源码后编译安装. 1.安装python3.5可能使用的 ...

  8. ubuntu14.04 Cannot find OpenSSL's <evp.h>

    Cannot find OpenSSL's <evp.h> when i configure php7 manually,i get trouble with that problem,f ...

  9. [android开发篇][android studio 和elipse都需要的流程 android sdk的安装

    第三步.下载并安装AndroidSDK 前面两步,我们已经配置了JDK变量环境,并安装好了Eclipse,通过这两步之后Java的开发环境就准备好了,如果我们只是开发普通的JAVA应用程序的话,那么到 ...

  10. ecmascript6入门

    ECMAScript 6 入门  阮一峰