SRM 09 撕書狂魔CZL

2022-02-27 11:43:26 字數 2330 閱讀 8911

a. 撕書ⅰ

序列型dp。dp[i]表示當前編號結點的撕書頁數。

那麼我們有 dp[ i ] = dp[ i - y - 1 ] + y

其中y為編號i書頁對應範圍內的書頁。

那麼,具體實現的話,需要求出每個i對應的y,這裡用字首和。

1 #include2 #include3 #include4

#define maxn 1000005

5#define lowbit(x) (-x&x)

6using

namespace

std;78

int n,high = 0;9

10struct

nodelist[maxn];

1314

inttree[maxn],dp[maxn],minn;

15int sum(int

p)23

return

ans;24}

25void add(int

p)32}33

34bool cmp(const node &a,const node &b)

3738

intmain()

4647 sort(list+1,list+1+n,cmp);

4849

//printf("#%d#\n",high);

5051

for(int i = 1;i <= n;i++)

5657

for(int i = 1;i <= n;i++)

6667 minn =dp[n];

6869

for(int i = 1;i <= n;i++)

7273 printf("%d"

,minn);

7475

//cout << endl;

76//

for(int i = 0;i <= n;i++) printf("%d ",dp[i]);

7778

//cout << endl;

79//

for(int i = 0;i <= 10;i++) printf("%d ",sum(i));

8081

return0;

82 }

震驚!cyc的背景居然隱藏著這樣的...

b. 撕書 ⅱ

這道題略坑。

x表示a+b,y表示a^b,那麼我們定義乙個z = (x-y)>> 1。

這個z表示的就是有a+b進製的位(準確來說是a x b == 1)

為什麼呢?

因為某些原因,異或等於沒有進製的加,那麼和就擁有異或結果所沒有的進製的資訊。

和 - 異或 就可以去除其他冗餘,得到進製的資訊啦!

然而需要右移一位才能精確表示。

那麼顯然不合法的情況就包括:

1. x < y :顯然根據前文我們有 x ≥ y

2. ( x - y ) & 1 != 0: ( x - y )>>1 表示有進製的二進位制位,如果命題成立,-1位有進製是什麼鬼??

還有特殊情況:

如果 x == y ,ans 需要減少2

因為此時 a 和 b 可以有乙個為0,所以需要排除這種情況。

求解策略:

如果 y 的乙個二進位制位為 1 ,顯然 a 和 b 其中乙個為 0 且另乙個為 1 ,那麼有兩種情況,ans *= 2

如果 y 的乙個二進位制位為 0 ,顯然 a 和 b 的對應二進位制位是相同的,ans *= 1

以此檢驗 x 和 y 的每一位,ans也就出來了。

1 #include2 #include3

#define ll long long

4using

namespace

std;

56 ll x,y,z,ans = 1;7

8int

main()

1718 z >>= 1;19

20//

for(ll i = 1;i <= x;i<<=1)

2324

//cout << endl;

2526

for(ll a = 0;(1l

3738 ans *= 2;39

}40//if(y&a) ans *= 2;41}

4243

if(x == y) ans -= 2;44

4546 printf("

%lld

",ans);

4748

return0;

49 }

題解比**重要!

汕頭市隊賽 SRM 09 A 撕書

背景 描述 琉璃在撕書。書總共有n頁,都懸浮在數軸上,第i頁的位置為 上面寫著乙個數字 琉璃從右往左撕書。假如看到了第i頁,就把在第i頁左邊,且與之距離 的書都撕掉。第i頁本身不撕 夜子為了盡量地保全魔法書,決定偷偷在琉璃開始撕之前,增加一頁。增加的這一頁必須在所有書頁的右邊,數字隨意。夜子想知道,...

汕頭市隊賽 SRM 09 C 撕書

背景 描述 琉璃雙在撕書。書總共有n頁,每頁都可以看作是乙個數字。琉璃讀書喜歡來回地讀。但他也因此發現了作者的灌水行為 有些連續的若干頁正著讀和倒著讀完全一樣,也就是說是回文的。發生這種情況時,琉璃會非常地angry,把那些書頁給撕掉。汀撿到了本黑色的魔法書。因為擔心殺死書後會帶來麻煩,決定借琉璃的...

《西瓜書》筆記09 聚類

無監督學習 訓練樣本的標記資訊是未知的。目標是通過對無標記樣本的學習揭示資料內在性質,為進一步數學分析提供基礎。此類學習任務中研究最多,應用廣泛的是聚類。聚類 試圖將資料集中的樣本劃分為若干個通常互不相交的子集。每個子集稱為乙個簇 cluster 每個簇可能對應於一些潛在概念。這些概念對於聚類演算法...