题目链接:A-塞特斯玛斯塔
分析: 有时候略过题目描述而直接看输入描述,你将获得自由!
代码:
#include <iostream> #include <string> #include <vector> using namespace std; void Solve() { bool flag = true; int data_num; cin >> data_num; while (data_num--) { string data; cin >> data; if ("PERFECT" != data) flag = false; } cout << (flag ? "MILLION Master" : "NAIVE Noob") << '\n'; } int main() { int n; cin >> n; while (n--) Solve(); return 0; }题目链接:C-萌萌哒身高差
分析:exp=sum(相邻身高差)/(n!),考虑相邻两个数为i、j(j稍大)时,所有情况:2*(j-i)(n-1)(n-2)! (注: n个数时,i、j相邻有n-1种情况,然后i、j可以轮换(乘2)以及剩余n-2个数全排列)
代码如下:
//EXP = (2*)/N! //1~2: 2*del*(n-1)*(n-2)! //2*del/n /* 1 2 n-1 1 n-2 1 */ #include <iostream> #include <iomanip> using namespace std; void Solve() { int n; cin >> n; int s = 0; for (int i = 1; i < n; i++) { s += (n - i + 1)*(n - i) / 2; } cout << setprecision(9) << fixed << 2.0*s / n << '\n'; } int main() { int t; cin >> t; while (t--) Solve(); return 0; }题目链接:G-命名规范问题
分析:模拟题,注意不要漏了条件
代码如下:
#include <iostream> #include <vector> #include <string> using namespace std; bool IsCamelCase(string &s, vector<int> &vi) { string s1 = s; bool flag = true; int wordNum = 0; int wordLen = 0; for (int i = 0; s1[i]; i++) { if (!wordNum) { if (s1[i] >= 'A' && s1[i] <= 'Z') s1[i] = s1[i] - 'A' + 'a'; wordLen++; i++; } while (s1[i] && (s1[i] >= 'a' && s1[i] <= 'z')){ wordLen++; i++; } if (wordLen < 2) { flag = false; break; } wordNum++; //在下条语句之前 if (s1[i] == '\0') break; s1[i] = s1[i] - 'A' + 'a'; vi.push_back(i); //记录除第一个单词外的首字母位置 //cout << i << '\n'; wordLen = 1; } //IndexOfO:需要最后判断一下wordLen if (wordLen < 2 || wordNum < 2) flag = false; if (flag) s = s1; //cout << "wordLen:" << wordLen << " wordNum:" << wordNum << flag << '\n'; return flag; } void AlterName(string &s, vector<int> vi) { int size = vi.size(); for (int i = 0; i < size; i++) { s.insert(vi[i]+i,"_"); //插入一个字符则右移一位 } } int main() { int t; cin >> t; while (t--) { vector<int> vi; string s; cin >> s; if (IsCamelCase(s,vi)) { AlterName(s,vi); } cout << s << '\n'; } return 0; } //12 //mystriGg //myString //String //SSi //my //mySString //mySiString //mString //STRING //StrinG //IndexOfString //indexOfO