t1
直接二分就好了
#include #includet1t2#include
#include
#include
#include
#define ll long long
#define mem(a,b) memset(a,b,sizeof(a))
using
namespace
std;
ll n;
inta,b,d;
ll check(ll x)
ll work1()
return
ans;
}int
main()
預處理出來每個點
$l_i$ i左邊第乙個比它大的點的位置
$r_i$ i右邊第乙個大於等於它的位置(這樣是為了統計的時候不重複)
那麼k==$a_i$的區間個數就是$$\sum_(i-l_i)(r_i-i)$$
然後求一下字首和和字尾和就行了
#include #includet2t3#include
#include
#include
#include
#define ll long long
#define mem(a,b) memset(a,b,sizeof(a))
using
namespace
std;
inline
intread()
return
ans;
}inline
char
readchar()
const
int n=100006
;struct
ji}ji[n*3
];int
ccc;
intnow;
intn,q;
inta[n],k[n];
char
op[n];
void
lisan()
}int
l[n],r[n];
ll num[n*3],presum[n*3],behsum[n*3
];int zhan[n*2
],he;
void
work()
he=0;zhan[++he]=n+1
;
for(int i=n;i>=1;--i)
for(int i=1;i<=n;++i)
num[a[i]]+=(ll)(i-l[i])*(r[i]-i);
for(int i=1;i<=now;++i)
presum[i]=presum[i-1]+num[i];
for(int i=now;i>=1;--i)
behsum[i]=behsum[i+1]+num[i];
for(int i=1;i<=q;++i)
}int
main()
for(int i=1;i<=q;++i)
lisan();
work();
}
$f_i$ 所有排列長度為 i 排完序所需要的總步數
那麼 $$f_i=i*f_+(2^-1)*fac_$$
我們考慮第 i 位都是誰
是i時,直接加上$f_$
1時,加上$f_+2^0*fac_$
...然後求和就可以 $o(n)$ 了
解釋一下轉移:
fac就是階乘,即長度為 i-1 的排列個數
每次在長度i-1的後面新增乙個數x (當然,前i-1個數里可能有i)
那把x扔到第x位需要$2^$次(i需要0次)
證明:比如 3 1 2 弄成 1 2 3 需要3次
4 1 2 3 弄成 1 2 4 3 也需要3次
因為 4可以看成3 再把 3扔到開頭到有序,又相當於重複了一遍3 1 2 到 1 2 3 的過程
#include #includet3想不出來也是一種無奈...#include
#include
#include
#include
#define ll long long
#define dd double
#define mem(a,b) memset(a,b,sizeof(a))
using
namespace
std;
const
int n=100006
;const
int mod=1e9+7
;ll qpow(ll a,
intci)
return
ans;
}ll jie[n],jieni[n];
void
chu()
intn;
ll f[n],mi[n];
intmain()
printf(
"%lld
", f[n]%mod*jieni[n]%mod );
}
1101上午考試T4
題目大意 有 n 輪比賽,最終成績由這 n 輪比賽中贏的輪數決定。如果在第 i 輪比賽賽選擇積極應戰,並且前 i 1 輪比賽中取得了 j 勝的話,那麼第 i 輪比賽的勝率概率為 p i j 這裡我們保證了對於同乙個 i,p i j 關於 j 的上公升保持單調不上公升 也就是說 p i j p i j...
1021上午考試T2
題目大意 n個莊家。你可以到莊家那邊下注,每次可以猜大猜小,猜一次一元錢。每一次開彩前,你都可以到任意個莊家那裡下賭注。如果開彩結果是大,你就可以得到你之前猜大的莊家相應的ai元錢。如果開彩結果是小,你就可以得到你之前猜小的莊家相應的bi元錢。你可以在同乙個莊家那裡既猜大又猜小 這樣是兩塊錢 也可以...
如何準備系統分析師考試的上午考試
儘管系統分析師考試上午試題分布很廣泛,但是總是圍繞目前軟體開發過程中常用的技術 理論和方法,因此不建議按照大綱和參考資料按部就班的學習有關的系統知識,而是應該注重學習重點和技巧。由於考試大綱要求掌握的知識點很分散,大多數知識點在開始中都有所涉及,因此考生很難把握應該著重學習哪些內容。我們通過把試題按...