国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Educational Codeforces Round 161 (Rated for Div. 2) E. Increasing Subsequences 動態(tài)規(guī)劃逼近,二進制拆分補充,注意嚴格遞增

這篇具有很好參考價值的文章主要介紹了Educational Codeforces Round 161 (Rated for Div. 2) E. Increasing Subsequences 動態(tài)規(guī)劃逼近,二進制拆分補充,注意嚴格遞增。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Problem - E - Codeforces

目錄

推薦視頻:

題意:

細節(jié)(我踩得沒什么價值的坑):

思路:

對樣例3 (X = 13)做解釋:

——————

總思路:

——————

動態(tài)規(guī)劃逼近:

——————

二進制拆分補充剩余:

核心代碼:?


推薦視頻:

E_嗶哩嗶哩_bilibili

其實有一些細節(jié)說的不是特別清楚好理解,可以結(jié)合我的題解來看。但是對題目的解析說的還是特別好的?

題意:

你需要制作一個數(shù)組,使其嚴格遞增子序列的數(shù)目為X

細節(jié)(我踩得沒什么價值的坑):

1.嚴格遞增strictly increasing,我直到看了別人的題解才發(fā)現(xiàn),,才能看懂樣例,,

2.好好讀題,我靠X是1e18了,得long long

3.快速逼近的時候while循環(huán)記得寫<=

4.空也算一個序列(這個坑我沒踩)

思路:

對樣例3 (X = 13)做解釋:

組合數(shù)解釋:

2 2 3 4 2
單獨一個數(shù)一組:
5?? 2,2,3,4,2
兩個數(shù)一組:
5 ? 23 23 24 24 34
三個數(shù)一組:
2 ? 234,234

總共12,然后加上題目說的空也算一組,一共13組啦

——————

總思路:

此題我們用動態(tài)規(guī)劃快速逼近答案,然后二進制拆分補充剩余的

(本題解沒有去探討題目中的長度最長為200

不過單調(diào)遞增就是最快的了)

——————

動態(tài)規(guī)劃逼近:

然而他給這個數(shù)組不太適合弄規(guī)律(當然方法不止一種哦)?

我們動態(tài)規(guī)劃的思想來規(guī)則地做這道題:

我們用arr[ i ]記錄 i 及此前的所有嚴格遞增子序列總數(shù)目

比如 1 2 3 4

arr[ 1?] = 1? ? ?(1自己,只有1個)

arr[ 2 ] = 3? ? ? ?為 arr[ 1 ]*2 +1? ,

解釋:這里arr[ 1 ]*2理解為兩個arr[ 1 ],

第一個arr[1]是不算2的此前所有的嚴格遞增子序列總數(shù)目;

第二個arr[1]代表此前的子序列尾都加個2的序列,這樣形成的序列的數(shù)目是等于arr[ i-1 ]的;

第三個1就是我們2單獨自己啦。

(所以狀態(tài)轉(zhuǎn)移方程就是 arr[ i ]?= arr[ i-1 ]*2 +1?)

此后同理,所以

arr[ 3 ] = 7? ? ? ? (arr[2]*2+1)?

arr[ 4 ] = 15? ? (7*2+1)

——————

二進制拆分補充剩余:

(剩余的數(shù)是個數(shù),肯定能用二進制來表示)

先看例子直接理解:

1 2 3 4 2

順序后面補個2,我們可以發(fā)現(xiàn)2只會和前面的2之前的數(shù)形成嚴格遞增序列,此時能形成兩個:

2 和?1 2

其中:

1 2其實就是我們上面動態(tài)規(guī)劃部分提到的?“?第二個1代表此前的子序列尾都加個2的序列?

2就是單獨自己啦

所以補的這個值即是arr[ i ] + 1啦

————

(再舉個例子,比如1 2 3 4 3,補的是3,補的序列是: 3和 1 3,1 2 3,2 3 共4種)

又因為:

1 ????????????????????????(補1)

arr[ 1 ] + 1 = 2? ? (補2)? ??

arr[ 2 ] + 1 = 4? ? (補3)

arr[ 3 ] + 1 = 8

arr[ 4 ] + 1 = 16

正好是二進制? (注意我們倒著補,后面不再組成遞增序列)

——————————文章來源地址http://www.zghlxwxcb.cn/news/detail-836745.html

核心代碼:?

ll ksm(int a,int b)//a的b次冪
{
	if (b == 1)return (ll)a;
	ll tmp = ksm(a, b / 2);
	if (b % 2) return tmp * tmp * a;
	else return tmp * tmp;
}

void solve()
{
	ll x;
	cin >> x;
	x--;
	ll cursum = 1;
	int curn = 1;
	vector<int>ans;
	ans.push_back(curn++);
	while (cursum <= x)//快速逼近
	{
		cursum = cursum * 2 + 1;
		if(cursum<=x)
		ans.push_back(curn++);
	}
	if (cursum > x)//二進制拆分補充
	{
		curn--;

		cursum = (cursum - 1) / 2;
		cursum = x - cursum;
		//補
		//求個最大值快速冪吧,順便當復(fù)習了
		ll val = ksm(2, curn);
		int curvaln = curn+1;
		while (cursum > 0)
		{
			if (val <= 0)
			{
				cout << "impossible!!!";
				exit(-1);
			}

			if (val <= cursum)
			{
				ans.push_back(curvaln);
				cursum -= val;
			}
			val /= 2;
			curvaln--;
		}
	}
	cout << ans.size() << endl;
	for (auto num : ans)
	{
		cout << num << " ";
	}
	cout << endl;
}

到了這里,關(guān)于Educational Codeforces Round 161 (Rated for Div. 2) E. Increasing Subsequences 動態(tài)規(guī)劃逼近,二進制拆分補充,注意嚴格遞增的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Educational Codeforces Round 148 (Rated for Div. 2) 題解

    總結(jié):5.21下午VP一場,死在了A題,給我wa崩潰了,浪費了差不多一個小時,BC還挺順暢,雖然C題是在結(jié)束后不久交上去的。。。。 思路:其實思路很簡單, “ The string s a palindrome ”, 題目已經(jīng)說了所給的為回文字符串,所以直接判斷一半 有幾種字符 即可(開始的時候計算整

    2024年02月06日
    瀏覽(18)
  • Educational Codeforces Round 62 (Rated for Div. 2) C. Playlist

    Educational Codeforces Round 62 (Rated for Div. 2) C. Playlist

    ?一開始肯定要排個序,b相同時t大的在前邊,不同時b大的在前面。 然后想最多只能選k個的限制,可以這樣想,每次用到的b只能用已選到的最小的值,那可以把每個b都枚舉一遍,然后每一次選時長最長的,且b大于等于當前的b的那k個不就好了嗎,時間復(fù)雜度也才O(n),然

    2024年02月12日
    瀏覽(18)
  • Educational Codeforces Round 154 (Rated for Div. 2)(A—C)

    從1到9,每個數(shù)后面都可以加一個數(shù)構(gòu)成一個含有兩個數(shù)的質(zhì)數(shù),只需要從s[1]~s[9]中找到一個數(shù)與s[0]構(gòu)成質(zhì)數(shù)即可 觀察樣例即可發(fā)現(xiàn)兩個字符串只要在相同位置都有 01 存在就能成功實現(xiàn)轉(zhuǎn)換后兩個字符串相等 可以先假設(shè)字符串是可以成立的,那么接下來就判斷它什么時間是

    2024年02月10日
    瀏覽(22)
  • Educational Codeforces Round 154 (Rated for Div. 2)(A—D)

    從1到9,每個數(shù)后面都可以加一個數(shù)構(gòu)成一個含有兩個數(shù)的質(zhì)數(shù),只需要從s[1]~s[9]中找到一個數(shù)與s[0]構(gòu)成質(zhì)數(shù)即可 觀察樣例即可發(fā)現(xiàn)兩個字符串只要在相同位置都有 01 存在就能成功實現(xiàn)轉(zhuǎn)換后兩個字符串相等 可以先假設(shè)字符串是可以成立的,那么接下來就判斷它什么時間是

    2024年02月10日
    瀏覽(35)
  • Educational Codeforces Round 135 (Rated for Div. 2)C. Digital Logarithm(思維)

    Educational Codeforces Round 135 (Rated for Div. 2)C. Digital Logarithm(思維)

    C. Digital Logarithm 給兩個長度位 n n n 的數(shù)組 a a a 、 b b b ,一個操作 f f f 定義操作 f f f 為, a [ i ] = f ( a [ i ] ) = a [ i ] a[i]=f(a[i])=a[i] a [ i ] = f ( a [ i ]) = a [ i ] 的位數(shù) 求最少多少次操作可以使 a 、 b a、b a 、 b 兩個數(shù)組變得完全相同 性質(zhì): 對于任何數(shù),經(jīng)過兩次操作我們一定可以

    2024年02月20日
    瀏覽(18)
  • 【每日一題】—— B. Ternary String (Educational Codeforces Round 87 (Rated for Div. 2))

    【每日一題】—— B. Ternary String (Educational Codeforces Round 87 (Rated for Div. 2))

    ??博客主頁: PH_modest的博客主頁 ??當前專欄: 每日一題 ??其他專欄: ?? 每日反芻 ?? C++跬步積累 ?? C語言跬步積累 ??座右銘: 廣積糧,緩稱王! 題目大意:給你一串由1、2、3組成的數(shù)組,讓你求一個最短的子串,要求這個子串包含1、2、3 題目鏈接:B. Ternary String

    2024年02月16日
    瀏覽(18)
  • Educational Codeforces Round 157 (Rated for Div. 2) F. Fancy Arrays(容斥+組合數(shù)學(xué))

    題目 稱一個長為n的數(shù)列a是fancy的,當且僅當: 1. 數(shù)組內(nèi)至少有一個元素在[x,x+k-1]之間 2. 相鄰項的差的絕對值不超過k,即 t(t=50)組樣例,每次給定n(1=n=1e9),x(1=x=40), 求fancy的數(shù)組的數(shù)量,答案對1e9+7取模 思路來源 靈茶山艾府群 官方題解 題解 看到 至少 的字眼,首先想到容斥,

    2024年02月05日
    瀏覽(20)
  • Educational Codeforces Round 145 Div. 2 題解

    目錄 A. Garland(簽到) 題面翻譯 思路: 代碼 B. Points on Plane(數(shù)學(xué)) 題面翻譯 思路: 代碼 C. Sum on Subarray(構(gòu)造) 題面翻譯: 思路: 代碼 D. Binary String Sorting 題面翻譯 思路: 代碼 You have a garland consisting of?4?colored light bulbs, the color of the?i-th light bulb is?si. Initially, all the l

    2023年04月09日
    瀏覽(17)
  • Educational Codeforces Round 147 div2題解

    目錄 A. Matching(簽到) 思路: 代碼:? B. Sort the Subarray(簽到) 思路: 代碼: C. Tear It Apart(枚舉) 思路: 代碼: D. Black Cells(模擬) 思路: ?代碼一: 代碼二:(模仿自\\\"AG\\\"佬) An?integer template?is a string consisting of digits and/or question marks. A positive (strictly greater than?0) in

    2023年04月21日
    瀏覽(20)
  • Educational Codeforces Round 134 (Div.2) D 題解

    D. Maximum AND 給定兩組序列 (a) (b) ,長度為 (n) ,現(xiàn)有一新序列 (c) ,長度也為 (n) 。 其中, (c_i = a_i oplus b_i) 。 定義 (f(a,b) = c_1c_2……c_n) 。 現(xiàn)在你可以隨意編排 (b) 序列的順序,求 (f(a,b)) 的最大值。 以下位運算均是二進制。 由于按位與的運算結(jié)果是越來越小的

    2024年02月06日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包