当前位置:网站首页>[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;
}
边栏推荐
- DR882-Qualcomm-Atheros-QCA9882-2T2R-MIMO-802.11ac-Mini-PCIe-Wi-Fi-Module-5G-high-power
- JS notes (III)
- TiDB 之 TiCDC6.0 初体验
- [dynamic programming] Jisuan Ke: Jumping stake (variant of the longest increasing subsequence)
- Exclusive interview with the person in charge of openkruise: to what extent has cloud native application automation developed now?
- Nacos common configuration
- 4. Data splitting of Flink real-time project
- 内存分析器 (MAT)
- How to obtain opensea data through opensea JS
- [dynamic planning] counting garlic customers: the log of garlic King (the longest increasing public subsequence)
猜你喜欢

Station B, dark horse programmer, employee management system, access conflict related (there is an unhandled exception at 0x00007ff633a4c54d (in employee management system.Exe): 0xc0000005: read locat

How PHP adds two numbers

Exclusive interview with the person in charge of openkruise: to what extent has cloud native application automation developed now?

gslb(global server load balance)技術的一點理解

Data consistency between redis and database

Notes on MySQL related knowledge points (startup, index)

What should the future of the Internet be like when Silicon Valley employees flee the big factory and rush to Web3| Footprint Analytics

MySQL——JDBC

Redis concludes that the second pipeline publishes / subscribes to bloom filter redis as a database and caches RDB AOF redis configuration files

Morning flowers and evening flowers
随机推荐
股票炒股开户注册安全靠谱吗?有没有风险的?
DR-NAS26-Qualcomm-Atheros-AR9582-2T-2R-MIMO-802.11-N-5GHz-high-power-Mini-PCIe-Wi-Fi-Module
使用dnSpy对无源码EXE或DLL进行反编译并且修改
Sed、Awk
QFileDialog
油猴插件
regular expression
Rest参考
No matter how hot the metauniverse is, it cannot be separated from data
UC Berkeley proposes a multitask framework slip
2022-2-14 acwing1027 grid access
flink sql-client 退出,表就会被清空怎么办?
WiFi 2.4g/5g/6g channel distribution
IPhone development swift foundation 08 encryption and security
Global and Chinese market of wall mounted kiosks 2022-2028: Research Report on technology, participants, trends, market size and share
Dynamic research and future planning analysis report of China's urban water supply industry Ⓝ 2022 ~ 2028
Yyds dry inventory Chapter 4 of getting started with MySQL: data types that can be stored in the data table
Cognitive fallacy: what is dimensional curse
How to install sentinel console
Solve the problem that openocd fails to burn STM32 and cannot connect through SWD