容斥一下然后生成树计数就行了....

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;const int maxn = 105;int a[maxn][maxn];
LL c[maxn][maxn];
int base, n, m, q;int det(int n)
{int ans = 1, i, j, k;bool flag = true;for (i = 1; i < n; i++)for (j = 1; j < n; j++) a[i][j] = (a[i][j] + base) % base;for (i = 1; i < n; i++){for (j = i + 1; j < n; j++)while (a[j][i]){int t = a[i][i] / a[j][i];for (k = i; k < n; k++) a[i][k] = (a[i][k] + base - (LL)t * (LL)a[j][k] % base) % base;for (k = i; k < n; k++) swap(a[i][k], a[j][k]);flag ^= true;}ans = (LL)ans * (LL)a[i][i] % base;if (!ans) return 0;}if (!flag) ans = (base - ans);return ans;
}void init()
{int N = 100;c[0][0] = 1 % base;for(int i = 1; i <= N; i++) {c[i][0] = 1 % base;for(int j = 1; j <= i; j++)c[i][j] = (c[i-1][j] + c[i-1][j-1]) % base;}
}LL powmod(LL a, LL b)
{LL res = 1, BASE = a;while(b) {if(b % 2) res = res * BASE % base;BASE = BASE * BASE % base;b /= 2;}return res;
}void work()
{scanf("%d%d%d%d", &n, &m, &base, &q);init();memset(a, 0, sizeof a);for(int i = 1; i <= m; i++) {int u, v;scanf("%d%d", &u, &v);a[u][v]--, a[v][u]--;a[u][u]++, a[v][v]++;}int res = det(n);LL cnt = powmod(n-1, q);for(int i = 1; i <= n-1; i++) {if(i & 1) cnt = (cnt - c[n-1][i] * powmod(n-1-i, q) % base) % base;else cnt = (cnt + c[n-1][i] * powmod(n-1-i, q) % base) % base;}LL ans = cnt * res % base;ans = (ans % base + base) % base;printf("%lld\n", ans);
}int main()
{
//freopen("data", "r", stdin);int _;scanf("%d", &_);while(_--) work();return 0;
}

HDOJ 5498 Tree相关推荐

  1. java 月份间隔_java计算两个日期之间相隔的月份(向下取整)

    最近需求里面有个需要计算两个日期之间相隔的月份,写起来还挺繁琐,需要将各种情况都要考虑到,写了一个作为以后自己的工具吧. //获取哪一天 public static int getDay(Date d ...

  2. 2020.7月做题记录

    转眼就到了2020的下半年了-前方仍是一片茫然. 长期计划 prufer 序列 2020.07.02-2020.07.04 Problem Finished P2624 [HNOI2008]明明的烦恼 ...

  3. hdoj 1754 I Hate It

    类型:一维线段树 来源:2007省赛集训队练习赛(6)_linle专场 题目:老师们很喜欢询问,从某某到某某当中,分数最高的是多少.写一个程序,模拟老师的询问.当然,老师有时候需要更新某位同学的成绩. ...

  4. HDOJ ACM 题目

    转载 HDOJ 题目分类(转) 1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 H ...

  5. 107. Binary Tree Level Order Traversal II

    题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...

  6. 102. Binary Tree Level Order Traversal

    题目 Binary Tree Level Order Traversal 层次遍历二叉树 链接 Given a binary tree, return the level order traversa ...

  7. Python---哈夫曼树---Huffman Tree

    今天要讲的是天才哈夫曼的哈夫曼编码,这是树形数据结构的一个典型应用. !!!敲黑板!!!哈夫曼树的构建以及编码方式将是我们的学习重点. 老方式,代码+解释,手把手教你Python完成哈夫曼编码的全过程 ...

  8. [Java]LeetCode297. 二叉树的序列化与反序列化 | Serialize and Deserialize Binary Tree

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  9. Code Forces Bear and Forgotten Tree 3 639B

    B. Bear and Forgotten Tree 3 time limit per test2 seconds memory limit per test256 megabytes inputst ...

最新文章

  1. 字典树(trie树)、后缀树
  2. freemarker 教程
  3. 对于ssh和hadoop联系讲解和ssh的基本内容
  4. linux用vsc写c语言,vscode写c语言(windows)
  5. XenMotion 与HA的区别
  6. html怎么绘制飞线,绘制飞线,echarts迁徙图原理
  7. 物联网大数据的爆发只是一个开始
  8. java部署容器_Linux容器——Docker(二)之 JavaWeb部署
  9. SQL:查询表中各类点数量以及各类点满足某条件数量
  10. C语言文件读写(输入输出重定向)
  11. 全网首发:分析及解决com.jogamp.opengl.GLException: J3D-Renderer-1: createImpl ARB n/a but required
  12. Python 网页爬虫
  13. McAfee迈克菲杀毒软件企业版8.8.13-McAfee VirusScan Enterprise8.8 百度云
  14. vs2017+BabeLua+Cocos2dx3.10配置
  15. 紫色飞猪:基于K8s的集群稳定架构
  16. 开源直播推流sdk_携程移动直播探索
  17. 用java编写台球小游戏项目
  18. vue动态调节背景图片
  19. ϵ-greedy Policies
  20. Go语言(Golang)的Web框架比较:gin VS echo

热门文章

  1. Oracle EBS WIP关闭失败提示:这些任务存在待定事务处理
  2. Channel 接口EventLoop 接口 ChannelFuture 接口
  3. 企业邮件网关首选:TurboGate反垃圾邮件网关
  4. 安卓微信跳转页面、重定向页面空白,ios系统正常、pc正常、安卓浏览器正常。
  5. ui设计和平面设计区别,平面设计好还是ui好
  6. 人物-商界-杨惠妍:杨惠妍
  7. 计算机专业大专学校排名河南的,2020河南大专学校排名榜单
  8. 如何用计算机设计衣服,怎样才能成为出色的服装设计师_电脑服装设计图怎么画...
  9. WPF 录屏软件研发心得及思路分享(已结束开发)
  10. PMO到底是做什么的