小強作為oi圈爸爸級別的人物,有一天隨手ak的zroi的j轉s模擬賽。
ak完了的小強閒得無聊,於是隨手在紙上面寫了幾個看上去非常有規律的數字,555655,24444,7787,110。他覺得這些數字非常的有趣,並開心地拍起了手。
於是小強定義乙個有趣的數為:對於乙個正整數,對於其所有的數字,當且僅當它恰好有一位與其他位不同,則稱這個數為有趣的數。
比如:555655,24444,7787,110都為有趣的數,而 6996,4444 都不是。
小強想要知道在[l,r]中有多少個有趣的數.
#include
using
namespace std;
#define int long long
int l,r;
bool
check
(int le,
int s,
int d,
int p)
signed
main()
printf
("%lld"
,ans)
;}
#include
using
namespace std;
#define mp make_pair
map < pair <
int,
int>
,int
> m;
string s;
int suma[
1010100
],sumb[
1010100
],sumc[
1010100];
intmain()
printf
("%lld"
,ans)
;return0;
}
#include
using
namespace std;
int t;
bool f[
201][20
][501]
;int a[
10110000];
void
work()
memset
(f,0
,sizeof
(f))
; f[0]
[0][
0]=1
;//初值
for(
int i=
1;i<=len;i++
)for
(int j=
0;j<
11;j++
)for
(int k=
0;k<=i;k++
) f[i]
[j][k]
|=f[i-1]
[(j-a[i]+11
)%11]
[k-1
]| f[i-1]
[(j+a[i])%
11][k];
//轉移
int ans =
10000000000000
;for
(int i=
0;i<=len;i++)if
(f[len][0
][i])if
(i*2
== len) ans =
min(ans,len)
;//可以不放0的搞出來
else ans =
min(ans,
max(i,len-i+1)
*2-1
);//需要由最大的長度的兩倍-1得出
printf
("%d\n"
,ans>
2*len-1?
-1:ans);}
main()
#include
using
namespace std;
#define int long long
int n,m,ans =0;
int h[
1010100];
signed
main()
//群體攻擊
if(h[k]==1
&& m && k<=n)
else
if(m)
//重擊
break
;// cout
for(
int i=k;i<=n;i++
) ans+
=(n-i+1)
*(h[i]-1
)+n-i;
//普通攻擊
printf
("%lld"
,ans)
;}
ZR 539 19普轉提 4 和 題解
給定乙個數字 n 請問有哪些區間 l,r 使得 sum r i n 請按 l 從小到大的順序輸出所有區間。根據題意我們可以列出方程 frac n 也就是 l r r l 1 n times 2 於是我們可以列舉 n 的因數 x 令 y frac n x 判斷是否有兩數和為 y 差為 x 即可。這裡假...
20ZR普轉提七連測 Day1
進行 dmo d360 d bmod 360 dmod36 0 討論一下,發現有四個 兩個 乙個一迴圈。然後預處理前四次操作的答案即可,注意對絕對值的處理。如果能確定吃哪些餐館,當然就是不回頭依次吃。那麼列舉那個餐館一定吃,在它之前的餐館可能吃也可能不吃,二分一下吃耗時最小的多少個餐館,套個區間前 ...
20ZR普轉提七連測 Day1
進行 dmo d360 d bmod 360 dmod36 0 討論一下,發現有四個 兩個 乙個一迴圈。然後預處理前四次操作的答案即可,注意對絕對值的處理。如果能確定吃哪些餐館,當然就是不回頭依次吃。那麼列舉那個餐館一定吃,在它之前的餐館可能吃也可能不吃,二分一下吃耗時最小的多少個餐館,套個區間前 ...