nowcoder OI 周賽 最后的晚餐(dinner) 解題報告

最后的晚餐(dinner)

鏈接:

https://www.nowcoder.com/acm/contest/219/B

來源:牛客網

題目描述

\(\tt{**YZ}\)(已被和諧)的食堂實在是太擠辣!所以\(\tt{Apojacsleam}\)現在想邀請他的一些好友去校外吃一頓飯,并在某酒店包下了一桌飯。

\(\tt{Apojacsleam}\)和他的同學們來到酒店之后,他才發現了這些同學們其實是\(N\)\(cp\),由于要保護廣大單身狗的弱小心靈(\(FF\)!),所以他不想讓任意一對情侶相鄰。

說明:

  • 酒店的桌子是恰好有\(2N\)個位置的圓桌。
  • 客人恰好是\(N\)\(cp\),也就是說,圓桌上沒有空位。
  • 桌子的每一個位置是一樣的,也就是說,如果兩種方案可以通過旋轉得到,那么這就可以視為相等的。
  • 現在,你需要求出,將任意一對情侶不相鄰的方案數。

說明

對于\(20\%\)的數據,\(1\le N\le 5\)
對于\(30\%\)的數據,\(1\le N\le20\)
對于\(50\%\)的數據,\(1\le N\le100\)
對于\(70\%\)的數據,\(1\le N\le 200000\)
對于\(100\%\)的數據,\(1\le N\le 30000000\)


思路:容斥原理

\(f_i\)代表至少\(i\)對情侶坐相鄰的方案數。

首先考慮一個小問題,\(n\)個人圍成一個可以旋轉的環的方案數。

可以固定第一個人,方案數就是\((n-1)!\)

那么\(f_i=fac_{2n-i-1}\times 2^i \times \binom{n}{i}\)

分別代表,捆綁法以后的方案數,情侶內部的方案數和選擇情侶的可能性。

答案就是\(\sum_{i=0}^nf_i(-1)^i\)

常數寫的不好。。說起來標程寫的好厲害,我都沒看懂。。


Code:

#include <cstdio>
#define ll long long
const ll mod=1e9+7;
const ll Inv=500000004;
const int N=3e7+10;
ll quickpow(ll d,ll k)
{ll f=1;while(k){if(k&1) f=f*d%mod;d=d*d%mod;k>>=1;}return f;
}
ll fac,tfac=1,ans=0,inv[N],po=1;
int n;
int main()
{scanf("%d",&n);if(n==1) return puts("0"),0;for(ll i=1;i<=n;i++) tfac=tfac*i%mod,po=po*2%mod;fac=tfac*quickpow(n,mod-2)%mod;inv[n]=quickpow(tfac,mod-2);for(ll i=n-1;~i;i--) inv[i]=inv[i+1]*(i+1)%mod;for(ll i=n;~i;i--){(ans+=fac*inv[i]%mod*inv[n-i]%mod*po%mod*(i&1?-1:1))%=mod;fac=fac*(2*n-i)%mod;po=po*Inv%mod;}ans=(ans+mod)%mod;ans=ans*tfac%mod;printf("%lld\n",ans);return 0;
}

2018.10.28

轉載于:https://www.cnblogs.com/butterflydew/p/9867900.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/279093.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279093.shtml
英文地址,請注明出處:http://en.pswp.cn/news/279093.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

阿里巴巴Java開發手冊終極版

2019獨角獸企業重金招聘Python工程師標準>>> 一、編程規約&#xff1a; (一)命名風格 1. 【強制】 代碼中的命名均不能以下劃線或美元符號開始&#xff0c;也不能以下劃線或美元符號結束。 反例&#xff1a; _name / __name / $Object / name_ / name$ / Object$ 2.…

ios6.1.6可用微信_這是iOS 12.1的新增功能,今天可用

ios6.1.6可用微信While iOS 12 is still fairly fresh, the first point release will be rolling out starting today. This brings a handful of new features, like Group Facetime, dual SIM support, camera improvements, new emoji, and more. 盡管iOS 12仍然相當新鮮&a…

Hadoop實戰項目之網站數據點擊流分析(轉載分析)

本文轉載于csdn博主‘一直不懂’ 一&#xff0c;項目業務背景 https://blog.csdn.net/shenchaohao12321/article/details/82958936 二&#xff0c;整體技術流程及架構 https://blog.csdn.net/shenchaohao12321/article/details/82959255 三&#xff0c;數據采集 https://blog.c…

php rewrite url_PHP實現url重寫和.htaccess

.htaccess是一個完整的文件名(只有后綴)&#xff0c;它是用于Apache服務器下的配置文件&#xff0c;當.htaccess文件放在某一文件夾下&#xff0c;它僅對該文件夾下的文件和文件夾有效。通過.htaccess文件&#xff0c;可以配置服務器實現很多功能&#xff0c;比如錯誤定位&…

esp32 cam工作電流_我如何在家工作:Cam的生產力之痛

esp32 cam工作電流Telecommuting is becoming more and more common these days, with many tech writers (myself included) working from home on a full-time basis. I get asked about how I work fairly often, so here’s the skinny. 如今&#xff0c;遠程辦公變得越來越…

PL/SQL Developer結合oracle精簡客戶端配置說明

oracle 11g精簡版客戶端配置 ORACLE 一般情況下都會部署在服務器上&#xff0c;而在客戶端上需使用PL/SQL Developer 等連接工具連接服務器上的 ORACLE 。 而此時往往需要在客戶端上也安裝上百兆的 ORACLE 然后通過 ORACLE 的網絡配置向導來配置完成 PL/SQL Developer 的支持。…

NUMPY數據集練習 ----------SKLEARN類

123456<br><br># 1. 安裝scipy&#xff0c;numpy&#xff0c;sklearn包import numpyfrom sklearn.datasets import load_iris# 2. 從sklearn包自帶的數據集中讀出鳶尾花數據集dataprint(data.data)123# 3.查看data類型&#xff0c;包含哪些數據data load_iris()pr…

java 偽異步 netty,大話netty系列之--偽異步BIO

生意規模擴大話說&#xff0c;老王和大明的生意越來越好&#xff0c;這就需要兩個人增強業務往來&#xff0c;由于天南地北&#xff0c;兩個人只能每次運輸都需要雇一個人去運貨(new 一個線程)&#xff0c;一個月下來&#xff0c;兩人一算&#xff0c;人力成本太大了&#xff0…

如何使用Windows搜索在任何文件中搜索文本

Many of us rely on Windows Search to find files and launch programs, but searching for text within files is limited to specific file types by default. Here’s how you can expand your search to include other text-based files. 我們中的許多人都依賴Windows搜索…

php算法求出兔子數列,PHP算法:斐波那契數列的N種算法

前言前段時間&#xff0c;遇到優化計算斐波那契數列的常規遞歸方法&#xff0c;但是一時間并沒有及時想到很好的方法&#xff0c;所以后面查找了相關資料&#xff0c;總結了多種計算解法&#xff0c;所以分享出來&#xff0c;和大家一起交流學習。斐波那契數是什么斐波那契數列…

.net core MongoDB 初試

是這樣的&#xff0c;我們有一個場景&#xff0c;另一個服務器是寫到MongoDB里面&#xff0c;我們的MVC頁面要展示&#xff0c;需要分頁展示 自己寫了一個DAL public class MongoConnect{public string ConnectString { get; set; }}public class MongoBaseDAL<TEntity>{…

Linux文件和目錄權限:chmod、更改所有者和所屬組:chown,umask命令,隱藏權限:lsattr/chattr...

文件和目錄權限chmod&#xff1a; 我們使用ls -l可以看到文件的詳細信息&#xff0c;也知道第一列的第一個符號(字母)表示文件的類型&#xff0c;在表示文件的類型符號的后面的九個符號則表示的是文件的權限&#xff0c;這些權限和文件的所有者和所屬組都有關系&#xff1a; 文…

【技術累積】【點】【java】【27】@JSONField

JSONField 該注解隸屬于阿里fastjson&#xff0c;方便fastjson處理對象時的一些操作 源碼 Retention(RetentionPolicy.RUNTIME) Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER }) public interface JSONField {/*** config encode/decode ordinal* s…

百度php editor圖片上傳到其他盤,百度編輯器Editor圖片獨立上傳

將百度編輯器中的圖片獨立出來上傳&#xff1a;html:代碼var myEditorImage,d,myEditorImage new UE.ui.Editor();myEditorImage.render(uploadid);myEditorImage.ready(function(){myEditorImage.setDisabled();myEditorImage.hide();//隱藏UE框體myEditorImage.addListener(…

感謝支持,超預期重印并加碼

今天&#xff0c;要向廣大讀者朋友帶來一個&#xff0c;連我自己和出版社都感到十分意外的好消息&#xff0c;幾天前接到出版社的通知&#xff0c;說今年元月出版的《Cisco/H3C交換機配置與管理完全手冊》&#xff08;第二版&#xff09;馬上就要下單重印了&#xff0c;而且一下…

如何從手機遠程控制uTorrent

You’re a geek on the go and it’s important to keep tabs on your torrents when you’re away from home. Today we take a peak at how you can monitor, manage, and even start your torrent downloads when you’re away from your computer. 您是旅途中的怪胎&#x…

洛谷P2463 Sandy的卡片【后綴數組】【二分】

題目描述 Sandy和Sue的熱衷于收集干脆面中的卡片。 然而&#xff0c;Sue收集卡片是因為卡片上漂亮的人物形象&#xff0c;而Sandy則是為了積攢卡片兌換超炫的人物模型。 每一張卡片都由一些數字進行標記&#xff0c;第i張卡片的序列長度為Mi&#xff0c;要想兌換人物模型&#…

php獲取一個文件名的函數,PHP 文件系統函數之獲取文件名及文件名后綴-php文件...

獲取文件名(包含擴展):1.用PHP 文件函數 basename獲取例&#xff1a;$filename "/home/httpd/html/index.php";$file basename($filename);2.先獲取位置再獲取文件名例:$filename "/home/httpd/html/index.php";$pos strrpos($filename, /);if ($pos …

tasker使用手冊_如何開始使用Tasker調整Android手機

tasker使用手冊Tasker is a powerful app for Android that lets you customize how your phone works and automate tasks. Unfortunately, it’s got a bit of a learning curve. We’re here to show you how to get started and turn your phone into a flashlight in the …

iPhone 軟件:xlate free 編碼的好幫手!

功能菜單&#xff1a; 1 文本 2 二進制 3 Char 值 4 Base64 5 反向 如果需要把一段中文編碼請選擇UTF16&#xff0c;如果是英文就選擇UTF8。對于需要經常使用編碼切換的朋友是個好幫手。 也可以用來簡單加密&#xff1a;我們先在文本狀態下輸入一段不想讓別人知道或需要保密的文…