首页 > 其他分享 >Codeforces Round 933 (Div. 3)赛后总结

Codeforces Round 933 (Div. 3)赛后总结

时间:2024-03-14 14:12:03浏览次数:28  
标签:debug1 cout int Codeforces num 933 Round define

Codeforces Round 933 (Div. 3)

B

从边缘开始计算,因为边缘肯定只能一个一个减,就可以遍历得到答案.
代码

C

只要对mapie特判,然后判断map和pie的个数就是答案了。

D(记忆化搜索)

可以通过二维数组来标记搜索状态,将已经出现过的状态直接返回,极大减少时间。

#include <bits/stdc++.h>
#define sz(X) (int)(X).size()
#define all1(X) (X).begin()+1,(X).end()
#define all(X) (X).begin(),(X).end()
#define debug1(X) std::cout << #X << ": " << X <<'\n'
#define debug2(X) std::cout << #X << ": " << X <<' '
using i64 = long long;
 
void close_sync() {
	std::ios::sync_with_stdio(false);
	std::cin.tie(nullptr);
	std::cout.tie(nullptr);
}
int r[2000];
char s[2000];
int vis[1010][1010];
int n, m, x;
std::set<int>a;
 
void dfs(int y, int num) {
	if (num > m) {
		a.insert(y);
		return ;
	}
    if(vis[y][num]){
        return ;
    }else{
        vis[y][num]=1;
    }
//	debug1(num);
//	debug1(y);
	if (s[num] == '0') {
		if (y + r[num] > n) {
			y -= n;
		}
 
		dfs(y + r[num], num + 1);
	} else if (s[num] == '1') {
		if (y - r[num] <= 0) {
			y += n;
		}
		dfs(y - r[num], num + 1);
	} else {
		int y1 = y, y2 = y;
		if (y + r[num] > n) {
			y1 -= n;
		}
		if (y - r[num] <= 0) {
			y2 += n;
		}
		if(y1+r[num]==y2-r[num]){
			dfs(y1+r[num],num+1);
			return ;
		}
		dfs(y1 + r[num], num + 1);
		dfs(y2 - r[num], num + 1);
	}
 
}
 
void solve() {
    memset(vis,0,sizeof(vis));
	std::cin >> n >> m >> x;
	for (int i = 1; i <= m; i++) {
		std::cin >> r[i] >> s[i];
	}
	dfs(x, 1);
	std::cout << a.size() << "\n";
	for (std::set<int>::iterator i = a.begin(); i != a.end(); i++)
		std::cout << *i << " ";
	std::cout << "\n";
	a.clear();
}
 
int main() {
	close_sync();
 
	int _;
	std::cin >> _;
	while (_--)
		solve();
	return 0;
}

标签:debug1,cout,int,Codeforces,num,933,Round,define
From: https://www.cnblogs.com/sdlypsck/p/18072715

相关文章

  • Codeforces Round 933 (Div. 3) A - G 题解
    CodeforcesRound933(Div.3)A-RudolfandtheTicketSolution因为\(n\)很小,直接枚举\(b_i+c_j\)所产生的所有数字Code#include<bits/stdc++.h>usingnamespacestd;voidsolve(){intn,m,k;cin>>n>>m>>k;intans=0;......
  • CF-933(已更新:B-D)
    CF-933当天晚上舍友在玩剧本杀,不得不说那剧情实在是太狗血了,想不通他们是怎么能玩得那么起劲的但也不能当作这次发挥不好的借口/_\A题最开始没看到数据范围(D也是),B一开始就想到了思路,但调了二十多分钟,甚至因为数组开小了白白多了一次RE……D题才是最难绷的,把题看懂后自己就用......
  • CodeForces 1874E Jellyfish and Hack
    洛谷传送门CF传送门显然\(\text{fun}(P)_{\max}=\frac{|P|(|P|+1)}{2}\)。考虑大力dp,设\(f_{i,j,k}\)为\(|P|=i\),\(P_1=j\),\(\text{fun}(P)=k\)的排列\(P\)的个数。此时\(|L|=j-1,|R|=i-j\)。转移枚举\(L_1,R_1,\text{fun}(L),\text{fun}(R......
  • Codeforces Round 933 (Div. 3)
    CodeforcesRound933(Div.3)AA-RudolfandtheTicket暴力查看代码voidsolve(){intn,m,k;cin>>n>>m>>k;vector<int>b(n),c(m);for(inti=0;i<n;++i)cin>>b[i];for(inti=0;i<m;++i)cin>>c[i];......
  • Codeforces Round 933 (Div. 3)
    CodeforcesRound933(Div.3)A-RudolfandtheTicket解题思路:暴力。代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;usingpii=pair<ll,ll>;#definefifirst#definesesecondusingpiii=pair<ll,pair<ll,ll>&......
  • Codeforces Round 933 (Div. 3)
    A.RudolfandtheTicket#include<bits/stdc++.h>usingnamespacestd;usingi32=int32_t;usingi64=longlong;usingldb=longdouble;#defineinti64usingvi=vector<int>;usingpii=pair<int,int>;constintinf=1e9;co......
  • wpf datagrid row background color alternatively changed based on row index,Alter
    <Windowx:Class="WpfApp7.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.c......
  • Codeforces Round 933 (Div. 3) A-F
    CodeforcesRound933(Div.3)A.RudolfandtheTicket题意:有两个数组\(b_n\)和\(c_m\),两个数组中分别取一个数相加是否小于k,有几种方法使\(b_f\)+\(c_s\)<=k思路:暴力枚举所有方案,时间复杂度O(nm)代码:#include<bits/stdc++.h>usingnamespacestd;constintMAXN=1e......
  • 牛客周赛 Round 36(A~F)
    A签到直接\(/1000\)输出即可#include<bits/stdc++.h>#defineintlonglong#definerep(i,a,b)for(inti=(a);i<=(b);++i)#definefep(i,a,b)for(inti=(a);i>=(b);--i)#define_for(i,a,b)for(inti=(a);i<(b);++i)#definepiipai......
  • 牛客周赛 Round 36 (小白练习记)
    A.小红的数位删除思路:这题简单输出即可Code:#include<bits/stdc++.h>usingnamespacestd;intmain(){strings;cin>>s;for(inti=0;i<s.size()-3;i++){cout<<s[i];}return0;}B.小红的小红矩阵构造思路:......