当前位置:网站首页>[sg function] 2021 Niuke winter vacation training camp 6 h. winter messenger 2
[sg function] 2021 Niuke winter vacation training camp 6 h. winter messenger 2
2022-07-03 22:03:00 【HeartFireY】
Portal :H- Winter messenger 2_2022 Niuke winter vacation algorithm basic training camp 6 (nowcoder.com)
Ideas
First, we review the theory of fair combination game P Point and N spot :
- All endpoints are fail points (P-Position)
- From any winning point (N-Position) operation , There is at least one way to enter the fail point (P-Position)
- Whatever you do , You can only enter the winning point from the losing point (N-Position)
Then let's start to analyze this topic :
- Adopt binary enumeration , use 0 0 0 representative b b b, 1 1 1 representative w w w, In this way, all combinations within a certain length can be enumerated .
- For each state , Whether enumeration can enter the mandatory state ( The initial failure state is 0 0 0), If it can, it will be marked as winning .
- For both operations :
- The first grid is white , When you can directly reverse the first lattice : If you flip the first lattice, it will fail , Then mark the current status as winning
- For the rest of the grid , If it can enter any previous failure state after completing the first type of flip , Then mark the current status as a must fail
Then according to the nature of the above two operations , We can write S G SG SG Table function :
int sg[N];
inline void getsg(){
for(int i = 1; i < (1 << 11); i++){
if(i & 1 && !sg[i - 1]){
sg[i] = 1;
continue;
}
for(int j = 1; j < 10; j++){
if(i >> j & 1){
for(int k = 0; k < j; k++)
if(!sg[i ^ (1 << j) ^ (1 << k)]) sg[i] = 1;
}
}
}
}
Then for each input , It only needs to be processed into the form of binary string , Judge S G SG SG The value of the can .
Accepted Code
#include <bits/stdc++.h>
using namespace std;
const int N = 1 << 11 + 10;
int sg[N];
string s;
void print_bin(int n){
int a = n % 2;
n = n >> 1;
if(n) print_bin(n);
std::cout << a;
}
inline void getsg(){
for(int i = 1; i < (1 << 11); i++){
if(i & 1 && !sg[i - 1]){
sg[i] = 1;
continue;
}
for(int j = 1; j < 10; j++){
if(i >> j & 1){
for(int k = 0; k < j; k++)
if(!sg[i ^ (1 << j) ^ (1 << k)]) sg[i] = 1;
}
}
}
}
inline void solve(){
getsg();
int n = 0; cin >> n >> s;
int lastpos = 0;
for(int i = 0; i < n; i++){
if(s[i] == 'w') lastpos = i;
}
int pos = 0;
for(int i = lastpos; i >= 0; i--){
if(s[i] == 'w') pos = pos << 1 | 1;
else pos = pos << 1;
}
//print_bin(pos);
cout << (sg[pos] ? "Yes" : "No") << endl;
}
signed main(){
int t = 0; cin >> t;
while(t--) solve();
return 0;
}
边栏推荐
- 2022 safety officer-a certificate registration examination and summary of safety officer-a certificate examination
- Capturing and sorting out external articles -- autoresponder, composer, statistics [III]
- On my first day at work, this API timeout optimization put me down!
- Luogu deep foundation part 1 Introduction to language Chapter 7 functions and structures
- What is the difference between res.send() and res.end() in the node express framework
- [secretly kill little partner pytorch20 days] - [day3] - [example of text data modeling process]
- regular expression
- (5) User login - services and processes - History Du touch date stat CP
- gslb(global server load balance)技术的一点理解
- Implementation principle of inheritance, encapsulation and polymorphism
猜你喜欢
Teach you how to install aidlux (1 installation)
Blue Bridge Cup Guoxin Changtian single chip microcomputer -- led lamp module (V)
The latest analysis of crane driver (limited to bridge crane) in 2022 and the test questions and analysis of crane driver (limited to bridge crane)
Awk getting started to proficient series - awk quick start
[secretly kill little partner pytorch20 days] - [day3] - [example of text data modeling process]
What is the difference between res.send() and res.end() in the node express framework
Bluebridge cup Guoxin Changtian single chip microcomputer -- hardware environment (I)
Nacos common configuration
MySQL——JDBC
No matter how hot the metauniverse is, it cannot be separated from data
随机推荐
How PHP drives mongodb
十大券商开户注册安全靠谱吗?有没有风险的?
Why use pycharm to run the use case successfully but cannot exit?
English topic assignment (28)
2022 safety officer-a certificate registration examination and summary of safety officer-a certificate examination
股票炒股开户注册安全靠谱吗?有没有风险的?
Electronic tube: Literature Research on basic characteristics of 6j1
Functions and differences between static and Const
Covariance
What is the difference between res.send() and res.end() in the node express framework
MySQL——idea连接MySQL
Report on the development status and investment planning trends of China's data center industry Ⓡ 2022 ~ 2028
JS Demo calcule combien de jours il reste de l'année
2022 G3 boiler water treatment registration examination and G3 boiler water treatment examination papers
Capturing and sorting out external articles -- autoresponder, composer, statistics [III]
仿网易云音乐小程序
Idea shortcut word operation
Exclusive interview with the person in charge of openkruise: to what extent has cloud native application automation developed now?
Global and Chinese market of gallic acid 2022-2028: Research Report on technology, participants, trends, market size and share
A little understanding of GSLB (global server load balance) technology