别想多了我怎么可能会正解呢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. NoSQL 之 Morphia 操作 MongoDB

    上两篇文章:http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html http://www.cnblogs.com/hoojo/arch ...

  2. 获取 request 中 json 数据

    import java.io.IOException; import javax.servlet.http.HttpServletRequest; /** * request 对象的相关操作 * @a ...

  3. 全排列问题(DFS)

    题目描述: 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 输入格式: n(1≤n≤9) 输出格式: 由1-n组成的所有不重复的数字序列,每行一个序列 ...

  4. 【图论】hdu6370Werewolf

    有理有据的结论题 Problem Description "The Werewolves" is a popular card game among young people.In ...

  5. centos 7.3安装教程

    进入安装初始化界面 等待检查完就可以进入安装了,不想等待的按ESC退出,没关系的 语言这里我们推荐使用英文: 然后点击Continue继续 选择-系统SYSTEM-安装位置INSTALLTION DE ...

  6. PAT Basic 1014

    1014 福尔摩斯的约会 大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm” ...

  7. python基础——15(加密、excel操作、ini文件操作、xml操作模块及数据格式分类)

    一.加密模块 1.有解密的加密方式(base64) #base64加密 import base64 str_encrypt = input("输入要加密的字符串:\n") base ...

  8. Hive 启动报错

    java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected at jl ...

  9. SQLite Database Browser 2.0使用方法

    在网上找一个SQLITE查看器 这个查看器叫做:www.jb51.net/database/118822.html 这个查看器可以新建SQLITE文件数据库,可以建立表索引,写SQL语句,编辑表数据 ...

  10. 阿里云PolarDB及其共享存储PolarFS技术实现分析(下)

    上篇介绍了PolarDB数据库及其后端共享存储PolarFS系统的基本架构和组成模块,是最基础的部分.本篇重点分析PolarFS的数据IO流程,元数据更新流程,以及PolarDB数据库节点如何适配Po ...