*【ZOJ - 3604】Tunnel Network (Cayley定理,purfer数列,无根树定理,构造,结论,或dp)

题干:

Country Far-Far-Away is a big country with N cities. But it is now under a civil war. The rebel uses the ancient tunnel network which connects all N cities with N-1 inter-city tunnels for transportation. The government army want to destroy these tunnels one by one. After several months fighting, some tunnels have been destoryed. According to the intel, the tunnel network have excatly S connected components now. And what government army further knows is that city 1, 2, ... , S belong to each of the S connected components. Since the government have little knowledge about the remaining tunnels, they ask you to calculate the number of possible networks of remaining tunnels.

Input

There are multiple test cases. The first line of input contains an integer T (T ≤ 500) indicating the number of test cases. Then T test cases follow.

Each case contains one line containing two integer N (2 ≤ N ≤ 2000) and S (2 ≤ S≤ N), as described above.

Output

The number of possible networks now. Since the number might be very large, you should output the answer after modulo 1000000007.

Sample Input

4
3 2
4 2
5 3
100 50

Sample Output

2
8
15
113366355

解题报告:

 且不说会不会T的问题,这个思路应该是没错的,但是只能过小样例,过不了大样例,不知道为什么。

 

AC代码:

#include<bits/stdc++.h>using namespace std;
typedef long long ll;const int mod=1e9+7;int main() {int T;scanf("%d",&T);while(T--) {ll n,s;scanf("%lld %lld",&n,&s);ll ans=s;for(ll i=1; i<n-s; i++) {ans=(ans*n)%mod;}if(n==s)ans=1;printf("%lld\n",ans);}return 0;
}

WA代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
using namespace std;
const int MAX = 2e5 + 5;
const ll mod = 1000000007;
int n,s;
ll C[2005][2005];
ll dp[2005][2005];
ll qpow(ll a,ll k) {if(k<=0) return 1;ll res = 1;while(k) {if(k&1) res = (res * a) % mod;a=(a*a)%mod;k>>=1;}return res;
}
void init() {C[0][0] = 1;for(int i = 1; i<=2002; i++) {C[i][0] = 1;for(int j = 1; j<=2002; j++) {C[i][j] = C[i-1][j] + C[i-1][j-1];}}
}
int main()
{init();int t;cin>>t;
//	dp[i][j]代表前i个集合中放入了j个点的方案数。while(t--) {scanf("%d%d",&n,&s);memset(dp,0,sizeof dp);dp[0][0]=1;for(int i = 0; i<=n-s; i++) {dp[1][i] = (C[n-s][i]*qpow(i+1,i-1))%mod;}for(int i = 2; i<=s; i++) {for(int j = 0; j<=n-s; j++) {for(int k = 0; k<=j; k++) {dp[i][j] = (dp[i][j] + C[n-s-(j-k)][k] * dp[i-1][j-k]*qpow(k+1,k-1))%mod;}}}ll ans = dp[s][n-s];
//		for(int i = 1; i<=n-s; i++) {
//			ans = (ans + dp[s][i])%mod;
//		}printf("%lld\n",ans);}return 0 ;
}
/*
100
4 1*/

https://blog.csdn.net/qq_36424540/article/details/80043433

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/440539.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创建文件夹 java_java怎么建文件夹

Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。File对象代表磁盘中实际存在的文件和目录。下面我们来看一下java中创建文件夹的方法&#xff1a;示例&#xff1a;package com.zz;import java.io.File;import java.i…

【Gym - 101986F】Pizza Delivery(Dijkstra最短路,建图方式,反向建图,Tarjan求桥,图论模板)

题干&#xff1a; 题目大意&#xff1a; 一个有向图&#xff0c;编号1~n的n个点&#xff0c;m条边&#xff0c;规定1为起点&#xff0c;2为终点&#xff0c;问对于每一条边&#xff0c;反转它的方向&#xff0c;最短路会不会发生改变&#xff0c;如果变短了&#xff0c;输出HA…

学java好还是web前端好_到底是学习Java好,还是Web前端好?

要想之后的发展空间比较大的话&#xff0c;我个人的建议还是要往全栈Web前端开发优势&#xff1a;人才缺口大&#xff0c;发展前景好&#xff0c;需求量大前景指数&#xff1a;★★★★★web前端开发前景大好&#xff01;其中的HTML5技术更是日趋成熟&#xff0c;HTML5是移动互…

【CF#505B】Mr. Kitayuta's Colorful Graph (并查集或Floyd或BFS)

题干&#xff1a; Mr. Kitayuta has just bought an undirected graph consisting of n vertices and m edges. The vertices of the graph are numbered from 1 to n. Each edge, namely edge i, has a color ci, connecting vertex ai and bi. Mr. Kitayuta wants you to p…

java data jpa_Spring Data JPA(一)简介

Spring Data JPA介绍可以理解为JPA规范的再次封装抽象&#xff0c;底层还是使用了Hibernate的JPA技术实现&#xff0c;引用JPQL(Java Persistence Query Language)查询语言&#xff0c;属于Spring整个生态体系的一部分。随着Spring Boot和Spring Cloud在市场上的流行&#xff0…

【CodeForces - 438D】The Child and Sequence(线段树区间取模操作)

题干&#xff1a; At the childrens day, the child came to Pickss house, and messed his house up. Picks was angry at him. A lot of important things were lost, in particular the favorite sequence of Picks. Fortunately, Picks remembers how to repair the sequ…

java 自定义xml_6.1 如何在spring中自定义xml标签

dubbo自定义了很多xml标签&#xff0c;例如&#xff0c;那么这些自定义标签是怎么与spring结合起来的呢&#xff1f;我们先看一个简单的例子。一 编写模型类1 packagecom.hulk.testdubbo.model;23 public classHero {4 privateString name;5 private intage;67 publicString ge…

【POJ - 3723】Conscription (最大生成树,最小生成树MST变形)

题干&#xff1a; Windy has a country, and he wants to build an army to protect his country. He has picked up N girls and M boys and wants to collect them to be his soldiers. To collect a soldier without any privilege, he must pay 10000 RMB. There are some…

java 监听本地端口_Java-在本地端口上侦听RTP数据包

因此,我目前正在开发一个客户端应用程序,该应用程序在端口5004上侦听RTP数据包.由于可能有多个服务器发送RTP数据包,因此我无法使用套接字连接到特定的远程主机.相反,我尝试了以下方法来侦听本地端口&#xff1a;Socket socket new Socket("127.0.0.1", 5004);Socke…

【FZU - 2254】英语考试(最小生成树,思维,建图)

题干&#xff1a; 在过三个礼拜&#xff0c;YellowStar有一场专业英语考试&#xff0c;因此它必须着手开始复习。 这天&#xff0c;YellowStar准备了n个需要背的单词&#xff0c;每个单词的长度均为m。 YellowSatr准备采用联想记忆法来背诵这n个单词&#xff1a; 1、如果Ye…

java 模块设计模式_Java9模块化学习笔记二之模块设计模式

模块设计的原则:1、防止出现编译时循环依赖(主要是编译器不支持)&#xff0c;但运行时是允许循环依赖的&#xff0c;比如GUI应用2、明确模块的边界几种模块设计:API模块&#xff0c;聚合模块(比如java.base)可选依赖两种方式:1、可选的编译时依赖(类似于maven的provided scope)…

【HDU - 5627】Clarke and MST(最大生成树,与运算性质,最小生成树MST变形)

题干&#xff1a; Clarke is a patient with multiple personality disorder. One day he turned into a learner of graph theory. He learned some algorithms of minimum spanning tree. Then he had a good idea, he wanted to find the maximum spanning tree with bit …

java爬虫获取div内容_Java爬虫-简单解析网页内容

获取百度新闻中所有的中国新闻的标题时间来源1 获取网页2 public static String getContent(String str) throwsClientProtocolException, IOException {3 CloseableHttpClient closeableHttpClientHttpClients.createDefault(); //创建实例4 HttpGet httpGetnewHttpGet(str);5…

【HDU - 4635】Strongly connected(缩点,新图性质,建图,Tarjan求强连通分量)

题干&#xff1a; Give a simple directed graph with N nodes and M edges. Please tell me the maximum number of the edges you can add that the graph is still a simple directed graph. Also, after you add these edges, this graph must NOT be strongly connected.…

python bind sock_python 在bind端口之后创建的socket如果不关闭的话会被回收吗?

在进行tcpsocket编程的时候&#xff0c;遇到一个问题&#xff1a;我创建一个Asocket&#xff0c;在进行bind之后&#xff0c;这个socket为 在进行tcpsocket编程的时候&#xff0c;遇到一个问题&#xff1a; 我创建一个Asocket&#xff0c;在进行bind之后&#xff0c;这个socket…

【ZOJ - 2955】Interesting Dart Game(背包,结论,裴蜀定理,数论)

题干&#xff1a; Recently, Dearboy buys a dart for his dormitory, but neither Dearboy nor his roommate knows how to play it. So they decide to make a new rule in the dormitory, which goes as follows: Given a number N, the person whose scores accumulate e…

接口测试 java_接口测试--Java

1&#xff1a;interface :定义接口接口用于 模块与模块之间的连接 或者系统与系统间的连接2&#xff1a;软件系统UI层&#xff1a;程序的界面&#xff0c;主要为用户提供交互和操作--查看&#xff0c;输入&#xff0c;点击&#xff0c;等。业务逻辑层&#xff1a;进行复杂的业…

【ZOJ - 2949】Coins of Luck (概率dp,期望)

题干&#xff1a; 给你两种泡面 各N包&#xff0c;然后你扔硬币&#xff0c;正面朝上吃第一种&#xff0c;反面呢 吃第二种&#xff0c;有任意一种吃完时 就不需要抛硬币了&#xff0c;求停止抛硬币的期望。 Sample Input 2 1 2Sample Output 1.00 2.50 解题报告&#xff…

java perl_在Java中调用Perl脚本

有两种方法&#xff0c;第一种是直接 Runtime.getRuntime().exec("...");这里推荐第二种&#xff0c;可以得到输出和返回值&#xff1a;源代码如下&#xff1a;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;public c…

*【HDU - 6201】transaction transaction transaction(树形dp 或 spfa最长路 或 网络流)

题干&#xff1a; 题目大意&#xff1a; 给出一棵n个顶点的树&#xff0c;每个点有一个权值&#xff0c;代表商品的售价&#xff0c;树上每一条边上也有一个权值&#xff0c;代表从这条边经过所需要的花费。现在需要你在树上选择两个点&#xff0c;一个作为买入商品的点&#…