整理一下算法提高课题解:(不定时更新)
本分享仅是做整理工作,如有疏漏私信我,不胜感激!
非常感谢大家的支持!
1015.摘花生 1018.最低通行费 1027.方格取数 275.传纸条
1014.登山 482.合唱队形
423.采药
1049.大盗阿福
1068.环形石子合并
1072.树的最长路径
135.最大子序和
1097.池塘计数
1129.热浪 1128.信使 1127.香甜的黄油
1140.最短网络 1141.局域网
1250.格子游戏
242.一个简单的整数问题
1292.哥德巴赫猜想 1293.夏洛克和他的女朋友
90.64位整数乘法
99.激光炸弹
1273.天才的记忆
太强了
大佬能不能解决一下这个,写个代码帮帮孩子吧 https://www.acwing.com/community/content/1249836/
整完给赞
我试试看
AC了,有空我就发个题解写一下思路
#include <bits/stdc++.h> using namespace std; const int N = 109; bool x[N], ans[N], flag = false; int n; string s; bool dfs(int pos) { if(pos == n) { if(ans[1] != 1 ^ x[n] ^ ans[n - 1] ^ ans[1]) return false; else if(ans[2] != 1 ^ x[1] ^ ans[n] ^ ans[pos]) return false; else return true; } if(ans[pos] ^ x[pos]) ans[pos + 1] = ans[pos - 1]; else ans[pos + 1] = ans[pos - 1] ^ 1; return dfs(pos + 1); } void print() { if(flag) return; for(int i = 1;i <= n;++ i) if(ans[i] == false) cout << 'F'; else cout << 'T'; cout << endl; flag = true; return; } int main() { cin >> n >> s; for(int i = 1;i <= n;++ i)//简化字符串,使其变成01序列 if(s[i - 1] == 'n') x[i] = false; else x[i] = true; ans[1] = 0, ans[2] = 0; if(dfs(2)) print(); ans[1] = 1, ans[2] = 0; if(dfs(2)) print(); ans[1] = 0, ans[2] = 1; if(dfs(2)) print(); ans[1] = 1, ans[2] = 1; if(dfs(2)) print(); if(!flag) cout << -1 << endl; return 0; }
大佬我试了,acwing和另一个题库都是0分啊
?
可是为什么我提交就不对 https://qr.maitube.com/img/GEEICE
太强啦
%%%
额。。。
等一下,在复制题解
ok,我先点个收藏
感谢支持~
催更!催更更更更更更更更更更更更更更更更更更更
谢谢大佬 已收藏
太强了
大佬能不能解决一下这个,写个代码帮帮孩子吧
https://www.acwing.com/community/content/1249836/
整完给赞
我试试看
AC了,有空我就发个题解写一下思路
#include <bits/stdc++.h> using namespace std; const int N = 109; bool x[N], ans[N], flag = false; int n; string s; bool dfs(int pos) { if(pos == n) { if(ans[1] != 1 ^ x[n] ^ ans[n - 1] ^ ans[1]) return false; else if(ans[2] != 1 ^ x[1] ^ ans[n] ^ ans[pos]) return false; else return true; } if(ans[pos] ^ x[pos]) ans[pos + 1] = ans[pos - 1]; else ans[pos + 1] = ans[pos - 1] ^ 1; return dfs(pos + 1); } void print() { if(flag) return; for(int i = 1;i <= n;++ i) if(ans[i] == false) cout << 'F'; else cout << 'T'; cout << endl; flag = true; return; } int main() { cin >> n >> s; for(int i = 1;i <= n;++ i)//简化字符串,使其变成01序列 if(s[i - 1] == 'n') x[i] = false; else x[i] = true; ans[1] = 0, ans[2] = 0; if(dfs(2)) print(); ans[1] = 1, ans[2] = 0; if(dfs(2)) print(); ans[1] = 0, ans[2] = 1; if(dfs(2)) print(); ans[1] = 1, ans[2] = 1; if(dfs(2)) print(); if(!flag) cout << -1 << endl; return 0; }
大佬我试了,acwing和另一个题库都是0分啊
?

可是为什么我提交就不对
https://qr.maitube.com/img/GEEICE
太强啦
%%%
额。。。
等一下,在复制题解
ok,我先点个收藏
感谢支持~
催更!催更更更更更更更更更更更更更更更更更更更
谢谢大佬 已收藏