每日打卡15
128#include bits/stdc.h using namespace std; int m, cnt; // 移动n块从a-c借助b void hanoi(int n, char a, char b, char c) { if (n 1) { // 如果当前步骤就是第m步直接输出 if (cnt m) cout a -- c endl; cnt; return; } // 将a上的n-1块借助c移动到b hanoi(n - 1, a, c, b); // 如果当前步骤就是第m步直接输出 if (cnt m) cout a -- c endl; cnt; // 将b上的n-1块借助a移动到c hanoi(n - 1, b, a, c); } int main() { int n; while (cin n m) { cnt 1; hanoi(n, A, B, C); // 移动步数为正案例逆天有一个负数 if (m 0 || m cnt) cout none endl; } return 0; }129#include bits/stdc.h using namespace std; // 直接两两组合进行比较大小 bool cmp(string a, string b) { return a b b a; } int main() { int n; while (cin n) { if (n 0) break; string s[n]; for (int i 0; i n; i) { cin s[i]; } // 排序 sort(s, s n, cmp); // 然后按设计的顺序输出即可 for (int i 0; i n; i) { cout s[i]; } cout endl; } return 0;130#include iostream #include vector using namespace std; int n; vectorvectorint board; // 棋盘1表示可放置0表示不可放置 vectorint black_col; // 记录每行黑皇后的列位置black_col[i]表示第i行黑皇后在第black_col[i]列 vectorvectorbool black_used; // 标记黑皇后已占用的位置 int total_count 0; // 总放法数 vectorint white_col; vectorvectorbool white_used; // 检查在第row行第col列放置黑皇后是否合法 bool is_black_valid(int row, int col) { // 检查位置是否可用 if (board[row][col] 0) return false; // 检查列冲突 for (int i 0; i row; i) { if (black_col[i] col) return false; } // 检查对角线冲突左上到右下 for (int i 0; i row; i) { if (row - i abs(col - black_col[i])) return false; } return true; } // 检查在第row行第col列放置白皇后是否合法需避开黑皇后位置 bool is_white_valid(int row, int col) { // 检查位置是否可用 且 不是黑皇后位置 if (board[row][col] 0 || black_used[row][col]) return false; // 检查列冲突 for (int i 0; i row; i) { if (white_col[i] col) return false; } // 检查对角线冲突 for (int i 0; i row; i) { if (row - i abs(col - white_col[i])) return false; } return true; } // 放置白皇后的回溯函数 void backtrack_white(int row) { if (row n) { total_count; return; } for (int col 0; col n; col) { if (is_white_valid(row, col)) { white_col[row] col; white_used[row][col] true; backtrack_white(row 1); white_used[row][col] false; white_col[row] -1;// 回溯 } } } // 放置黑皇后的回溯函数 void backtrack_black(int row) { if (row n) { // 黑皇后放置完成开始放置白皇后 backtrack_white(0); return; } for (int col 0; col n; col) { if (is_black_valid(row, col)) { black_col[row] col; black_used[row][col] true; backtrack_black(row 1); black_used[row][col] false; black_col[row] -1;// 回溯 } } } int main() { // 输入处理 cin n; board.resize(n, vectorint(n)); black_col.resize(n, -1); white_col.resize(n,-1); black_used.resize(n, vectorbool(n, false)); white_used.resize(n, vectorbool(n, false)); for (int i 0; i n; i) { for (int j 0; j n; j) { cin board[i][j]; } } // 开始回溯求解 backtrack_black(0); // 输出结果 cout total_count endl; return 0; }单词翻译平板电脑的配置基本上是一个窄框屏幕没有物理键盘尽管可以附加一个。苹果Apple的iPad和三星samsung的galaxy Tab都是流行的平板电脑。二合一或可转换平板电脑可以使用触摸屏或物理键盘操作物理键盘可以折叠起来或拆卸智能手机是一种移动设备具有与平板电脑相似的功能但也通过手机网络提供电信功能。它们可以打电话、发短信和上网。与普通手机不同智能手机是可编程的因此它们可以下载、存储和运行软件。智能手机是世界上最常用的数码设备。智能手机的特点是一个小键盘或触摸屏被设计成可以放进口袋里靠电池供电当你拿在手里的时候就可以使用。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2414558.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!