欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

??痛赫兴㈩}訓(xùn)練營(yíng) - 2025.4.22 題解

活動(dòng)地址:??痛赫兴㈩}訓(xùn)練營(yíng) - 編程打卡活動(dòng)

Easy 【模板】棧

簡(jiǎn)要題意

要求實(shí)現(xiàn)棧支持的操作。

Solution

棧,即先進(jìn)后出 (FILO) 表。支持 插入, 彈出。

STL 中的 stack 實(shí)現(xiàn)了棧的功能。但我個(gè)人的習(xí)慣是將 vector 看成一個(gè)倒過(guò)來(lái)的棧。

Code

void R()
{
	int n;
	cin>>n;
	vector<int> s;
	while (n--)
	{
		string op;
		cin>>op;
		if (op=="push")
		{
			int x;
			cin>>x;
			s.push_back(x);
		}
		else
		{
			if (s.empty()) cout<<"error\n";
			else
			{
				cout<<s.back()<<'\n';
				if (op=="pop") s.pop_back();
			}
		}
	}
	return;
}

Medium 點(diǎn)擊消除

簡(jiǎn)要題意

對(duì)一個(gè)字符串反復(fù)消去相鄰相同字母,求該字符串最終形態(tài)。

Solution

用一個(gè)棧維護(hù)答案,如果將要插入一個(gè)與棧頂相同的字母就不進(jìn)行插入,而是將棧頂彈出。

Code

void R()
{
	string s,t;
	cin>>s;
	for (char c:s)
	{
		if (!t.empty()&&t.back()==c)
			t.pop_back();
		else t.push_back(c);
	}
	if (t.empty()) cout<<0;
	else cout<<t;
	return;
}

Hard 小紅取數(shù)

簡(jiǎn)要題意

給定一個(gè)數(shù)組,問(wèn)從中選取一些數(shù),使得它們之和為 的倍數(shù)的前提下,它們之和最大是多少。

Solution

要判斷某個(gè)數(shù)是否為 的倍數(shù),我們只需要判斷它對(duì) 取余是否為 ,所以記 表示對(duì) 取余為 前提下的最大和,然后做 背包即可。

下面代碼的 dp 數(shù)組中維護(hù)的是 ,不失正確性。

Code

void R()
{
	constexpr i64 inf=1e11;
	int n,k;
	cin>>n>>k;
	vector<i64> dp(k,-inf);
	dp[0]=0;
	for (int i=0;i<n;i++)
	{
		i64 x,w,v;
		cin>>x;
		w=x/k,v=x%k;
		vector<i64> ndp(dp);
		for (int j=0;j<k;j++)
		{
			if (j+v<k)
				ndp[j+v]=max(ndp[j+v],dp[j]+w);
			else
				ndp[j+v-k]=max(ndp[j+v-k],dp[j]+w+1);
		}
		swap(dp,ndp);
	}
	if (dp[0]==0) cout<<-1;
	else cout<<dp[0]*k;
	return;
}
#??痛赫兴㈩}訓(xùn)練營(yíng)#
全部評(píng)論

相關(guān)推薦

點(diǎn)贊 評(píng)論 收藏
分享
評(píng)論
點(diǎn)贊
收藏
分享

創(chuàng)作者周榜

更多
牛客網(wǎng)
??推髽I(yè)服務(wù)