当前位置:网站首页>[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;
}
边栏推荐
- Capturing and sorting out external articles -- autoresponder, composer, statistics [III]
- QFileDialog
- 2022 free examination questions for safety management personnel of hazardous chemical business units and reexamination examination for safety management personnel of hazardous chemical business units
- Collections SQL communes
- Farmersworld farmers world, no faith, how to talk about success?
- How to obtain opensea data through opensea JS
- IPhone development swift foundation 09 assets
- Are the top ten securities companies safe to open accounts and register? Is there any risk?
- Day 9 HomeWrok-ClassHierarchyAnalysis
- Report on the current situation and development trend of ethoxylated sodium alkyl sulfate industry in the world and China Ⓞ 2022 ~ 2027
猜你喜欢
MySQL——idea连接MySQL
Tidb's initial experience of ticdc6.0
TiDB 之 TiCDC6.0 初体验
Collections SQL communes
[dynamic planning] counting garlic customers: the log of garlic King (the longest increasing public subsequence)
Yiwen teaches you how to choose your own NFT trading market
Exclusive interview with the person in charge of openkruise: to what extent has cloud native application automation developed now?
[dynamic programming] Ji Suan Ke: Suan tou Jun breaks through the barrier (variant of the longest increasing subsequence)
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)
Décompiler et modifier un exe ou une DLL non source en utilisant dnspy
随机推荐
Sed、Awk
On my first day at work, this API timeout optimization put me down!
Minio deployment
4. Data splitting of Flink real-time project
Persistence of Nacos
WiFi 2.4g/5g/6g channel distribution
Is it safe and reliable to open an account and register for stock speculation? Is there any risk?
Day 9 HomeWrok-ClassHierarchyAnalysis
Oil monkey plug-in
抓包整理外篇——————autoResponder、composer 、statistics [ 三]
Control loop of program (while loop)
MySQL——JDBC
Exclusive interview with the person in charge of openkruise: to what extent has cloud native application automation developed now?
No more! Technical team members resign collectively
IPhone development swift foundation 08 encryption and security
[vulnhub shooting range] impulse: lupinone
Décompiler et modifier un exe ou une DLL non source en utilisant dnspy
Under the double reduction policy, research travel may become a big winner
JS Demo calcule combien de jours il reste de l'année
Capturing and sorting out external articles -- autoresponder, composer, statistics [III]