zhw神犇出題就是強啊。。。
john 在
x 軸上擁有
n個點,他們的座標分別為(x
[i],
0),(i=
0,1,
2,…,
n−1)
。 他想知道有多少對
b>
滿足 |
x[b]
−x[a
]|≤k
(a。
題解
對於每個點,二分它右邊離他最遠、但是又在距離 k
內的點,然後加到答案裡,這樣做複雜度是nl
ogn的,由於pretest太水,最終ac的人竟然並不是很多
#include
#include
#include
#include
#include
#define maxn 110000
using
namespace
std;
typedef
long
long
int ll;
ll ans=0;
int x[maxn],n,k;
int main()
ans+=(ll)(tmp-i);
}printf("%lld\n",ans);
}return
0;}
令 a=
∑ni=
1ai∗
10n−i
(1≤a
i≤9)
(n為a
的位數)。若
a 為「漂亮的數」當且僅當對於任意1≤
ia[i]
≥a[i
+1] 且對於任意1≤
i≤n,
in ,滿足a[
i]mod a[
j]=0
(例如931是乙個「漂亮的數」而87不是),求在區間[l
,r] (包含l和r)裡「漂亮的數」的個數。
題解
#include
#include
#include
#include
#include
using namespace std;
int digit[11],len; //digit陣列儲存數字(個位在1),len陣列儲存x的長度,digit陣列剛開始我開成10然後過了pretest最終fst有木有!!!!掉rating有木有!!!!!
int num[10][11]=,,,
,,,,
,,
};int ans=0;
void dfs(int
last,int
pos,bool danger)
for(int i=1;i<=num[last][0];i++)
else
if(last==digit[pos+1]&&digit[pos]>=next)
}}int work(int
x) //求[1,x]中美麗的數的個數
for(int i=0;i<=9;i++)
if(digit[len]>=i)
return ans;
}int main()
return
0;}
在n∗n的西洋棋中,放置若干個國王和k個車,使得國王之間不互相攻擊,車之間不互相攻擊,車不可攻擊到國王(這並不代表國王不能攻擊到車)。國王能攻擊到它上下左右,左上左下右上右下八個位置的棋子,車可以攻擊到同一行或同一列中的棋子,求方案總數對1000000007取模後的值。
現在你有乙個棧和
n 個數1,
2,3,
…,n。這
n 個數依次進入棧頂,且在某個時刻在棧頂中彈出。你可以參見樣例獲得更多的資訊。
這個問題非常簡單,因此我想給你一些限制條件。
這裡有m
個限制,每個限制形如
b>
,表示 a
必須在b之前先彈出。
你能告訴我有多少種合法的彈出棧的方案嗎?
我知道這個答案或許非常大,你只需告訴我這個答案 m
od1000000007(10
9+7)
就行了。
BestCoder 33 簡要題解
真是傷心。這場比賽我兩個題在20min中全部做完,全部因為忘了特判導致fst,我是sb。最水的題,純比手速,結果我為了搶時間忘記特判,最後fst掉了。要特判的情況就是輸出的答案為0的情況。include include include include include define maxn 500 ...
題解 CF1485 簡要題解
奇怪的難度。當 b 2 的時候再操作,操作次數是一定的。因此 b 的變化量很小,暴力列舉。考慮哪個數不同,然後不同後可以選擇的區間是什麼。會發現中間夾著的區間選兩遍,旁邊的選一遍。做字首和好了。簡單轉化發現一定要滿足 a k b 1 k。列舉 b 貢獻式帶有乙個 min 找到其分割點,前一部分直接求...
走迷宮 簡要題解
走迷宮,帶起點終點 有傳送門,傳送門個數不超過 26 個 不會 我們可以考慮把每個點能到的點連邊 二維壓到一維,常見 trick 於是我們有乙個很顯然的想法 點到傳送門連 0 權值的邊 但是這樣是錯的,因為我們經過傳送門必須得進去 紅色是邊,藍色是最短路 於是如果乙個點能到傳送門,我們就直接把傳送門...