[NOIP模擬10.24][容斥原理]Silhouette
Description
有一個n n的網格,在每個格子上堆疊了一些邊長為1的立方體。 現在給出這個三維幾何體的正檢視和左檢視,求有多少種與之符合的堆疊立方體的方
案。兩種方案被認為是不同的,當且僅當某個格子上立方體的數量不同。 輸出答案對109 + 7取模的結果。
Sample Input
2
1 2
2 1
Sample Output
5
題解
容易發現,其實就是要求這樣一個方程的整數解數量
將 排序,顯然這樣對答案沒有影響。判斷最大值是否相等即可判斷無解
我們考慮列舉 中所有數 ,每次確定最大值是 的這片區域的方案數
先考慮總最大值為 的情況,顯然這樣的區域是一個 的矩形
設 表示至少有 行不合法的方案數(保證列全部合法)
有轉移
.簡單容斥可知答案
再考慮 不是最大值的情況
畫圖可知這樣的區域可能是 形或者矩形
我們發現, 形可能產生非法情況的只有在中間交界處的那個矩形
因為上面的行更大,不可能非法。右邊的列更大,也不可能非法
設這個矩形是 的,上面還有 行,右邊還有 列
有轉移
左邊處理的是一個 的矩陣,右邊處理的是一個 的矩陣
同樣容斥 可以知道答案
複雜度
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<queue>
#include<vector>
#include<ctime>
#include<map>
#include<bitset>
#define LL long long
#define mp(x,y) make_pair(x,y)
#define mod 1000000007
using namespace std;
inline int read()
{
int f=1,x=0;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
inline void write(int x)
{
if(x<0)putchar('-'),x=-x;
if(x>9)write(x/10);
putchar(x%10+'0');
}
inline void pr1(int x){write(x);printf(" ");}
inline void pr2(int x){write(x);puts("");}
LL pow_mod(LL a,LL b)
{
LL ret=1;
while(b)
{
if(b&1)ret=ret*a%mod;
a=a*a%mod;b>>=1;
}
return ret;
}
LL inv[110000],pre[110000];
LL C(int n,int m){return pre[n]*inv[m]%mod*inv[n-m]%mod;}
LL solve(LL a,LL b,LL c,LL d,LL s)
{
LL ret=0;
for(int i=0;i<=a;i++)
{
LL sum=C(a,i)*pow_mod(pow_mod(s,i)*((pow_mod(s+1,a+c-i)-pow_mod(s,a+c-i)+mod)%mod)%mod,b)%mod;
sum=sum*pow_mod(pow_mod(s,i)*pow_mod(s+1,a-i)%mod,d)%mod;
if(i&1)ret=(ret-sum+mod)%mod;
else ret=(ret+sum)%mod;
}
return ret;
}
int s1[110000],s2[110000],tt[210000],ln;
int n;
int main()
{
pre[0]=1;for(int i=1;i<=100000;i++)pre[i]=pre[i-1]*i%mod;
inv[100000]=pow_mod(pre[100000],mod-2);
for(int i=99999;i>=0;i--)inv[i]=inv[i+1]*(i+1)%mod;
n=read();
for(int i=1;i<=n;i++)s1[i]=read(),tt[++ln]=s1[i];
for(int i=1;i<=n;i++)s2[i]=read(),tt[++ln]=s2[i];
sort(s1+1,s1+1+n);sort(s2+1,s2+1+n);
sort(tt+1,tt+1+ln);ln=unique(tt+1,tt+1+ln)-(tt+1);
if(s1[n]!=s2[n])return puts("0"),0;
int lst1
相關推薦
[NOIP模擬10.24][容斥原理]Silhouette
Description
有一個n n的網格,在每個格子上堆疊了一些邊長為1的立方體。 現在給出這個三維幾何體的正檢視和左檢視,求有多少種與之符合的堆疊立方體的方 案。兩種方案被認為是不同的,當且僅當某個格子上立方體的數量不同。 輸出答案對109 + 7取模的結果。
【浮*光】 #noip模擬10.24#
我真的.真的..真的...炒雞炒雞高興的說!
因為,在noip前16天,我快要退役的時候,居然 ...
AK辣 ~\(≧▽≦)/~ 啦啦啦
好吧我承認我是 295分 ......
而且這麼高是因為第二題抄了 斜率優化 的模板,
第三題和 LRZ大神 討論了並且抄了他
【題解】[牛客網NOIP賽前集訓營-提高組(第二場)]B.分糖果 單調棧優化線性DP+容斥原理
題目連結
#include<cstdio>
#define re register
typedef long long ll;
const int N=1e6+10;
const int INF=0x3f3f3f3f;
const int mod=1e9
2018.10.18每天認真做一道數學(數論)題之BZOJ 1042 [HAOI2008] 硬幣購物【揹包DP】【容斥原理】
對於每個詢問,答案顯然為:S所有超過數量限制的方案數-
c
[
1
2018.10.05 bzoj2393: Cirno的完美算數教室(容斥原理+搜尋)
傳送門
經典題目。
顯然滿足題意的數最多不超過1024個。
然後對於兩個數a,ba,ba,b,如果aaa是bbb的倍數,那麼就不必計算aaa的貢獻。
處理出來之後容斥原理+爆搜剪枝就能過了。
程式碼:
求N(10^14)以內與N互質的數的和(容斥原理,或者尤拉函式)
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
POJ 1091 容斥原理
.org 質因子 blank dfs tar cin href strong 元組 鏈接:
http://poj.org/problem?id=1091
題意:
給你兩個正整數n,m,讓你求長度為n+1的滿足條件的一個等式:a[1]*x1+a[2]*x2+a[3]*x
容斥原理
clu images class 又是 對象 title href 推理 計算 容斥原理(Inclusion–exclusion principle),是指在計數時,必須註意無一重復,無一遺漏,為了使重疊部分不被重復計算,人們研究出一種新的計數方法。這種方法的基
POJ 2773 容斥原理
for log cto tor ans 個數 ret num void 鏈接:
http://www.cnblogs.com/MashiroSky/p/5913989.html
題意:
給出兩個數m,k,要求求出從1開始與m互質的第k個數。
題解:
二分一個答案m
{容斥原理}
.com lld hide mes problem fine efi lose -a 題目鏈接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1284
比較基礎練一下。
1 #include
POJ3904 Sky Code【容斥原理】
define 原理 tail n-1 pop blog soft ace tdi
題目鏈接:
http://poj.org/problem?id=3904
題目大意:
給你N個整數。從這N個數中選擇4個數,使得這四個數的公約數為1。求滿足條件的
四元組個數。
洛谷P1450 [HAOI2008]硬幣購物 動態規劃 + 容斥原理
string -1 line sum mes 開始 clas 完全背包 預處理 洛谷P1450 [HAOI2008]硬幣購物
動態規劃 + 容斥原理
1、首先我們去掉限制 假設 能夠取 無數次 也就是說一開始把他當做完全背包來考慮 離線DP 預處理 復雜度 4*v
hdu 1695 GCD(歐拉函數+容斥原理)
spi fin clu init mod long long tac push_back gcd
http://acm.hdu.edu.cn/showproblem.php?pid=1695
非常經典的題。同一時候感覺也非常難。
在區間[a,b]和[c,d]內分
洛谷1002 容斥原理+dfs OR DP
amp define its name sign pri last += include
//By SiriusRen
#include <bits/stdc++.h>
using namespace std;
#define int long lon
TopCoder SRM 717 Div2 C.DerangementsDiv2[數論][容斥原理][錯排]
long max math 需要 linker nal tex 排列 lin 題意:從1到n+m的數組中選m個數字且每個數字和在原數組中下標不同,求方案數。例如 n=1 m = 2 則存在{2,1},{2,3},{3,1}
題解:錯排問題模板 下面是使用容斥原理推導的過程
[容斥原理] hdu 1796 How many integers can you find
pos lcm 一個 每一個 fin memset 而不是 std !=
題意:
給一個N。然後給M個數,問1~N-1裏面有多少個數能被這M個數中一個或多個數整除。
思路:
首先要N--
然後對於每一個數M 事實上1~N-1內能被其整除的 就是有(N-1)/
POJ2773 Happy 2006【容斥原理】
sca problem article 容斥原理 lan /tmp .org family pop
題目鏈接:
http://poj.org/problem?id=2773
題目大意:
給你兩個整數N和K。找到第k個與N互素的數(互素的數從小到大排
洛谷 P2986 [USACO10MAR]Great Cow Gat…(樹形dp+容斥原理)
nco more printf ide eva gre ans names get P2986 [USACO10MAR]偉大的奶牛聚集Great Cow Gat…
題目描述
Bessie is planning the annual Great Cow G
HDU 5794 A Simple Chess(楊輝三角+容斥原理+Lucas)
exgcd -i -- || 兩種方法 sizeof put amp mem 題目鏈接 A Simple Chess
打表發現這其實是一個楊輝三角……
然後發現很多格子上方案數都是0
對於那寫可能可以到達的點(先不考慮障礙點),我們先叫做有
bzoj 2005 能量采集 - 容斥原理
100% itl memset blog read 線段 太陽 break als
棟棟有一塊長方形的地,他在地上種了一種能量植物,這種植物可以采集太陽光的能量。在這些植物采集能量後,
棟棟再使用一個能量匯集機器把這些植物采集到的能量匯集到一起。 棟棟的植物種得非常整