NOIP模擬 K進製 排隊 航班

2021-08-28 17:00:26 字數 2683 閱讀 3431

描述

給定乙個k(2<=k<=16)進製數a,判斷a是否能被k-1整除。

輸入第一行是乙個整數t(1<=t<=50),表示測試點數量。

對於每組資料,第一行乙個整數k,表示進製。

第二行乙個k進製數,表示a。保證a是合法的k進製數,沒有前導0,且只由』0』-『9』、』a』-『f』構成。

輸出如果a可以被k-1整除,輸出」yes」,否則輸出」no」。

樣例輸入216

2d10

19樣例輸出

yesno

提示對於40%的資料,a的長度不超過5。

對於100%的資料,a的長度不超過100000。

解析:模擬。

**:

#include using namespace std;

const int max=100005;

int t,n,m,num[max],sum;

char ch[max];

inline int ksm(int a,int b,int mod)

return ans;

}inline bool check()

int main()

return 0;

}

描述

在成都某中學有m個男生與n個女生排隊,這個學校的女生比較古怪,從某個位置(包含這個位置)開始往前數,男生的數量超過了女生的數量,女生會感覺不安全,於是會大叫起來,為了構建和諧校園,安排隊伍時應該避免這樣的情況。請你計算出不會引發尖叫的排隊方案的概率。(排隊方案不同定義:當且僅當某個某個位置人不一樣,如男生a、男生b ,與男生b、男生a ,2個排列是不同方案)

輸入第一行1個整數, 表示測試資料的組數。

每個資料 有兩個數 n,m(n個女生,m個男生)

輸出對於每組資料,輸出乙個實數(保留到小數點後 6 位)

樣例輸入

31 0

0 11 1

樣例輸出

1.000000

0.000000

0.500000

提示【 hint】

第一組:只有乙個女生,一種方案且可行

第二組:只有1個男生,一種方案且不行

第三組:兩種方案 女、男可行,男、女不可行,可行概率0.5

【資料規模】

30%的資料: (測試組數<=10),(0<=n,m<=1000).

100%的資料: (測試組數=9008 ), ( 0<=n,m<=20000 ).

解析:可以將原問題轉化一下,看成是在乙個二維平面上行走,女生看向右移動,男生看成向上移動,那麼到達(n,m)點且路線又不走到y=x這條直線上方的路線總數就是答案,這個組合問題很經典,方案數為c(m+n,m)-(m+n,m-1),所以可以知道答案就是1-m/(n+1) 。(注意本來因為男生和女生中兩兩不同要乘n!m!但是可以約掉)。

**:

#include using namespace std;

int t;

double n,m;

int main()

,,,。

從城市 1 出發到達城市 6,乘坐(1,3)(3,6)兩個航班費用最大,(1,3)在國內為免費航班, (3,6)的費用為 4,所以從 1 出發的最大費用為 4。

【資料規模】

對於 40%的資料 1<=n<=1000,1<=m<=1000

對於 100%的資料 1<=n<=20000,1<=m<=200000

解析:邊-雙聯通縮點+樹形dp。

**:#include using namespace std;

const int max=200100;

int n,m,index,cnt,tot,size=1;

int num[max],low[max],father[max],p[max],vis[max];

int first[max],f[max][3],first[max],ans[max],son[max];

struct shu;

shu edge[max<<1],edge[max<<1];

inline int get_int()

inline void print(int x)

inline void build(int x,int y,int z)

inline void build(int x,int y,int z)

inline void tarjan(int point,int v)

if(low[point]==num[point]) }

}inline void rebuild()

inline void dfs1(int point)

}inline void dfs2(int point)

}inline int mx(int x,int y)

int main()

for(int i=1;i<=n;i++) if(!num[i]) tarjan(i,0);

rebuild();

dfs1(1);

memset(vis,0,sizeof(vis));

dfs2(1);

for(int i=1;i<=cnt;i++) ans[i]=mx(f[i][0],f[i][2]);

for(int i=1;i<=n;i++) print(ans[father[i]]),putchar('\n');

return 0;

}

NOIP校內模擬 航班

描述 l因為業務繁忙,經常會到處出差。因為他是航空公司的優質客戶,於是某個航空 公司給了他乙個優惠券。他可以利用這個優惠券在任何乙個國家內的任意城市間免費旅行,當他的路線跨國 才會產生費用。l有乙個航空公司的 表與航線。而且每個城市出發都能到所有的城 市,2 個城市間可能有不止乙個航班,乙個國家內的...

NOIP校內模擬 航班

描述 l因為業務繁忙,經常會到處出差。因為他是航空公司的優質客戶,於是某個航空 公司給了他乙個優惠券。他可以利用這個優惠券在任何乙個國家內的任意城市間免費旅行,當他的路線跨國 才會產生費用。l有乙個航空公司的 表與航線。而且每個城市出發都能到所有的城 市,2 個城市間可能有不止乙個航班,乙個國家內的...

NOIP模擬 K進製(進製轉換 快速冪)

給定乙個k 2 k 16 進製數a,判斷a是否能被k 1整除。第一行是乙個整數t 1 t 50 表示測試點數量。對於每組資料,第一行乙個整數k,表示進製。第二行乙個k進製數,表示a。保證a是合法的k進製數,沒有前導0,且只由 0 9 a f 構成。如果a可以被k 1整除,輸出 yes 否則輸出 no...