欧拉定理的应用:Counting regions

Counting regions

Niuniu likes mathematics. He also likes drawing pictures. One day, he was trying to draw a regular polygon with n vertices. He connected every pair of the vertices by a straight line as well. He counted the number of regions inside the polygon after he completed his picture. He was wondering how to calculate the number of regions without the picture. Can you calculate the number of regions modulo 1000000007? It is guaranteed that n is odd.

在图论里有这样一个定理:对于一个凸多面体,顶点数-边数+面数=2

我最早看到这个式子是在浙大的高中数学竞赛书中,最近离散数学课也推到图论了,里面讲到了这场多校赛的两个基础知识点,欧拉定理和哈密顿图。

不过e题的两个飞机点(x+y%2==1)规律没找出来,但软磨硬泡总算把g搞出来了。

我当时只知道,n阶完全图的边数为C(n,2),欧拉公式只适用于立体图;

一开始想找找规律,wa了两发;

后来我想,如果把完全图看作一个立体图,也就是说n阶完全图还有一个由外围的n个点形成的面

这样我们要求的区域数再+1就是立体图的面数;

到这里只需要分别求出顶点数和边数就能带式子了:

顶点数:我们可以这么想每一个内部的交点都是由两条线相交构成的,这个线的两端点是从外面一圈点中选的,那么内部的交点数就相当于从外围的个点中选四个数,构成两条线,两条线再构成一个交点,即交点数为C(n,4),然后还要加上外围的n个点,所以顶点数为C(n,4)+n;

边数:尤其要注意的是,把完全图看成立体图后,对角线之间互相切割的线段才是边,我们首先知道n阶完全图的边数是C(n,2),同时我们注意到上图中每形成一个交点都会使两条对角线互相切割,切割成了4段,也就是比原边数多了两段,也就是交点数 * 2,即C(n,4) * 2,然后再把C(n,2)加上就行了,于是边数也就是C(n,4) * 2+C(n,2);

带入公式:

C(n,4)+n-C(n,4) * 2-C(n,2)+x=2;

x=qu+1;

于是求得

qu=C(n,4)+1-n;

接下来用组合数求就行了;

当然要用到费马小定理求逆元,就不再赘述了。。。

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll M=1e9+7;
ll qmi(ll a,ll k,ll p){ll res=1;while(k){if(k&1)res=(ll)res*a%p;a=(ll)a*a%p;k>>=1;}return res;
}
int C(int a,int b,int p){if(a<b) return 0;ll x=1,y=1;for(int i=a,j=1;j<=b;i--,j++){x=(ll)x*i%p;y=(ll)y*j%p;}return x*(ll)qmi(y,p-2,p)%p;
}
int lucas(ll a,ll b,int p){if (a<p&&b<p) return C(a,b,p);return (ll)C(a%p,b%p,p)*lucas(a/p,b/p,p)%p;
}
int main()
{ll n;cin>>n;cout<<(((C(n,2,M)%M+C(n,4,M)%M)%M)%M+(1-n+M)%M)%M;return 0;
}

这着实是个好题,但不太正经。。。

欧拉定理的应用:Counting regions相关推荐

  1. Counting regions —— 多边形对角线分割区域个数

    题目描述 Niuniu likes mathematics. He also likes drawing pictures. One day, he was trying to draw a regu ...

  2. 欧拉定理 费马小定理

    前言 学基础数论的时候看过证明,然而很快就忘了,最近在学习高深一点的数论,于是再复习一下欧拉定理和费马小定理. 欧拉定理 内容 若正整数 \(a,n\) 互质,则 \(a^{\varphi(n)}\e ...

  3. [LeetCode] 130. Surrounded Regions Java

    题目:Given a 2D board containing 'X' and 'O' (the letter O), capture all regions surrounded by 'X'. A ...

  4. 「欧拉定理」学习笔记(费马小定理)

    欧拉定理:对于互质的两个正整数$a, n$,满足$a^{φ(n)} ≡ 1\  (mod\ n)$ 证明: 设集合$S$包含所有$n$以内与$n$互质的数,共有$φ(n)$个:$$S = \{ x_1 ...

  5. [leetcode]Surrounded Regions @ Python

    原题地址:https://oj.leetcode.com/problems/surrounded-regions/ 题意: Given a 2D board containing 'X' and 'O ...

  6. DFS:深入优先搜索 POJ-2386 Lake Counting

    深度优先搜索是从最开始的状态出发,遍历所有可以到达的状态. 因此可以对所有的状态进行操作,或列举出所有的状态. Lake Counting POJ - 2386 Due to recent rains ...

  7. Boring counting HDU - 3518 (后缀数组)

    Boring counting \[ Time Limit: 1000 ms \quad Memory Limit: 32768 kB \] 题意 给出一个字符串,求出其中出现两次及以上的子串个数,要 ...

  8. pat1004. Counting Leaves (30)

    1004. Counting Leaves (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A fam ...

  9. 费马定理中值定理_数论-欧拉函数、欧拉定理

    欧拉函数 积性函数 满足 ( 互质) 定义 对于正整数 ,欧拉函数是小于等于 的所有数中与 互质的数的 个数. 欧拉函数是积性函数(这个证明不是很显然,这个链接里面有很多种证明方法) 记作: 公式 , ...

最新文章

  1. WPF查找子控件和父控件方法
  2. 开源BTS产品中存在多处漏洞,攻击者或可劫持手机通讯基站
  3. SAP财务中国本土好内容
  4. 试论软件工程学科的交叉性_海外大学所有学科梳理(超大工程,建议收藏)-大学下的硕士一二级学科...
  5. maven 文件上传下载_使用Maven将文件上传和下载到S3
  6. 算法基础系列之三:螺旋形矩阵
  7. Javascript 仿Flash 图片切换 及 Flash 图片切换
  8. 为什么要学数据结构?| 原力计划
  9. ASP.NET MVC 3—一切的开始MvcHandler、MvcHttpHandler
  10. 星环TDH助力南方基金数据中心迈入大数据时代
  11. linux xbrowser 安装包,xmanager安装包
  12. MariaDB安装教程(保姆级)
  13. E盾网络验证企业版个人版离线版对接好的自绘界面4加密防破解易语言源码加密
  14. java crm系统_基于SSM框架开发的CRM系统
  15. 服务器系统怎么打驱动精灵,win7系统如何使用驱动精灵?教你在win7系统使用驱动精灵的方法...
  16. 从杂技表演到日剧GBM(r12笔记第23天)
  17. 2020学而思笔记小初课程百度云网盘分享下载
  18. C语言排序算法之“选择排序法”
  19. html职业性格测试,MBTI职业性格测试专业版
  20. 非磺酸型离子液体([pmim]HSO4、[bmim]HSO4、[bpy]HSO4、[ppy]HSO4、[pmim]BF、[pmim]CF3SO3、[pmim]H2PO4)的定制合成

热门文章

  1. 树莓派HDMI无输出
  2. I-Cache 和 D-Cache
  3. centos7搭建discuz论坛过程
  4. php怎么魔方加密,深度解析php混淆加密解密的手段,希望对大家解读魔方加密有所帮助 [tihuan]...
  5. Lambert漫反射光照模型归纳
  6. 网络爬虫(网络蜘蛛,网络机器人)与Web安全
  7. Error:Module “./antd/es/badge/style“ does not exist in container. while loading “./antd/es/badge/sty
  8. 微信开放平台和公众平台的区别
  9. 集成基于Websocket的Stomp连接
  10. 使用Matlab和Minepy工具箱做变量的互信息MIC (maximal information coefficient ) 分析