标签:度数 17 noip log long int 欧拉 模拟 个点
由于玄学错误以及各种挂分,这场考试连100都没上……
A.序列
玄学思路可以蹭过去,但是log函数在long long的情况下异常玄学,下面这段代码在Windows下运行结果为2,Linux下正确
#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
int val=8,p=2;
int c=log(val)/log(p);
cout<<c;
return 0;
}
所以还是少用内置函数比较好……
B.
树形dp神题
C.
组合推公式
HKH巨佬凭借超强的猜想能力与数学天赋A掉了这道题%%%
首先,这道题如果被题面迷惑住会连暴力都不会打的(像我一样)
一次操作可以反向来考虑,对于一个欧拉图删去一条边或加上一条边形成的图就是满足题意的图了(因为欧拉一个点度数至少为2,删去边后不可能孤立),而对于一个 \(n\) 个点的欧拉图删边共有 \(C_{n}^{2}\) 种方案(即n个点中任选2个断边或连边)
于是问题转化为求 \(n\) 个点的欧拉图的数量。
考虑欧拉图的性质,欧拉图为所有点度数为偶数的连通图
那么可以所有点度数为偶数的图减去不连通的图即可
设 \(i\) 个点总的偶图的数量为 \(g_i\),欧拉图的数量 \(f_i\)
那么 \(g_i=2^{C_{n-1}^{2}}\), 可以这么理解:先单独选出一个点来补漏,剩下 \(i-1\) 个点随意建图,则单独的点总可以通过向奇数度数的点连边而补成偶数度数的
再来看 \(f_i\) 的转移:首先总共的图为 \(g_i\), 而不连通的图可以这样考虑:先选出一个 \(j\) 个点的欧拉图,剩下的 \(i-j\) 个点为随意偶图,于是转移为:
\(f_i=g_i-\sum_{j=1}^{i-1} f_j*g_{i-j}*C_{i-1}^{j-1}\)
其中C的部分表示编号的轮换
时间复杂度 \(n^2\)
貌似类似于 城市规划 可以用FFT优化至 \(nlogn\)
标签:度数,17,noip,log,long,int,欧拉,模拟,个点 来源: https://www.cnblogs.com/yang-cx/p/14725453.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。