a
先用全排列打了個表
可以發現有三個小數部分是0.66667,也就是2/3,這樣子看不出來什麼,我們把後者乘個3,都變成正整數看看
數感好的可以直接看出來 ans=n*n-1,那麼答案也就是ans/3.0
數感差的(本人) 只能看出來是個遞推式 ans[i]=ans[i-1]+2*i-1
#include
using namespace std;
typedef
long
long ll;
double a[
105]
;voiddb(
) ll ans=1;
for(ll k=
1; k<=i; k++
) ans*
=k; cout<<
"n="
<
" ans="
<
intmain()
return0;
}
bans= a^ b
如我們求ans的長度時候如果是k進製,直接logk(ans)+1
比如ans=8 我們要求2進製下的長度就是 log2(8)+1=4 8的二進位制值為1000 顯然正確
但是我們知道在c/c++中log的底只有2 ,e,10,所以這裡用一下換底公式即可
ans=logk(ans)=b * logk(a)=b * ( log(a) / log(k) )
故答案即為ans+1
///8 2 2 -> 7
#include
using namespace std;
typedef
long
long ll;
intmain()
return0;
}
c看到遞推式以及範圍,矩陣快速冪無疑了,
並且是乙個模板題
如果n<10 直接輸出n%k
n>=10 跑矩陣快速冪即可
簡單構造一下矩陣
初始狀態是
【f9 f8 f7 f6 f5 f4 f3 f2 f1 f0】
構造的矩陣為
a0 1 0 0 0 0 0 0 0 0
a1 0 1 0 0 0 0 0 0 0
a2 0 0 1 0 0 0 0 0 0
a3 0 0 0 1 0 0 0 0 0
a4 0 0 0 0 1 0 0 0 0
a5 0 0 0 0 0 1 0 0 0
a6 0 0 0 0 0 0 1 0 0
a7 0 0 0 0 0 0 0 1 0
a8 0 0 0 0 0 0 0 0 1
a9 0 0 0 0 0 0 0 0 0
#include
using namespace std;
typedef
long
long ll;
#define me(a) memset(a,0,sizeof a)
ll mod,n;
struct node
qq;node jz
(node a,node b)
now.a[i]
[j]=x%mod;}}
return now;
}void
qsm(ll n)
cout<
[0]%mod<
}int
main()
return0;
}
d找出第乙個比給定的數大的下標,直接暴力肯定t,因此直接線段樹維護區間最大值即可。
當查詢的k大於整個序列的最大值時候,直接輸出no response
#include
using namespace std;
typedef
long
long ll;
ll n,m;
struct node
t[4*100005];
int f=0;
void
build
(ll s,ll l,ll r)
ll mid=
(l+r)
>>1;
build
(s*2
,l,mid)
;build
(s*2+1
,mid+
1,r)
; t[s]
.maxn=
max(t[s*2]
.maxn,t[s*2+
1].maxn);}
ll query
(ll s,ll k)
void
updata
(ll s,ll x,ll y)
ll mid=t[s]
.l+t[s]
.r>>1;
if(x<=mid)
updata
(s*2
,x,y)
;else
updata
(s*2+1
,x,y)
; t[s]
.maxn=
max(t[s*2]
.maxn,t[s*2+
1].maxn);}
intmain()
else
}return0;
}
e四個for會t,看資料範圍不超過1e6,可以用陣列標記來優化掉乙個for,
三個for列舉前三個數,看是不是有他們的乘積,要注意的是,前面用過的數要刪去,不然會重,而且選中的三個數要刪去,並且要在迴圈後補回來,結果炸int。
舉個簡單的小資料
51 1 1 1 1
答案應該是5
1 2 3 4
1 2 3 5
1 2 4 5
1 3 4 5
2 3 4 5
上面數字指下標
#include
using namespace std;
typedef
long
long ll;
ll v[
1000005];
ll a[
1000005];
intmain()
ll num=0;
for(
int i=
1;i<=n;i++
)for
(int l=j+
1;l<=n;l++
) v[a[l]]++
;}for(
int l=i+
1;l<=n;l++
) v[a[l]]++
;}cout<
return0;
}
暑期第一場題解
此題,emmmm,有毒,很容易出現各種bug,還是自己菜,不能動不動就覺得是資料有問題,此題肯定要用字串,模擬的題,有點長 蒟蒻瑟瑟發抖 不過不難理解,仔細看看就明白了,主要是細節方面的處理 include include include includeusing namespace std int...
寒假第一場個人賽題解
include using namespace std typedef long long ll int t ll a,b,ans,x intmain ac include using namespace std const int n 1e5 7 char sr n int main if a b...
2019 假期第一場(2019 1 14)
description input input contains two integers n,m 1 n 1000,0 m 10 output output the answer in a single line.sample input 10 0sample output 10題意 求 思路 同...