Contestant. Rank WASTED. Unrated.
A. Are You a Robot?
题意
给定一个图片,输出图片里的单词。
思路
如图,为"\(security\)"。
头脑复杂度:\(O(0)\)
对应AC代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
#define fs first
#define sc second
const int N = 2e5 + 10, inf = 0x3f3f3f3f3f3f3f3f;
void init(){}
void solve() {
cout << "security\n";
}
signed main(){
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
init();
int t = 1;
//cin >> t;
while(t --) solve();
}
人也不一定看得出第一个字母是s(划掉
B. Was it Rated?
题意
给定一个 \([1, 25]\) 内的数字,输出对应的答案。
思路
\(Rated?\),\(Codeforces\) 前 \(25\) 场只有 \(15, 20, 21\) 场是 \(Unrated\),因此这三场输出 \(NO\) 即可。
头脑复杂度:\(O(n^2)\)
对应AC代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
#define fs first
#define sc second
const int N = 2e5 + 10, inf = 0x3f3f3f3f3f3f3f3f;
void init(){}
void solve() {
int n;
cin >> n;
map<int, bool> mp = {
{1, true},
{2, true},
{3, true},
{4, true},
{5, true},
{6, true},
{7, true},
{8, true},
{9, true},
{10, true},
{11, true},
{12, true},
{13, true},
{14, true},
{15, false},
{16, true},
{17, true},
{18, true},
{19, true},
{20, false},
{21, false},
{22, true},
{23, true},
{24, true},
{25, true}
};
cout << (mp[n] ? "YES\n" : "NO\n");
}
signed main(){
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
init();
int t = 1;
//cin >> t;
while(t --) solve();
}
属于是没想到(x
C. Digits
题意
给定 \(t\) 组数据,每组数据有 \(n\) 个数,\(n\) 不给出。观察输入输出,输出答案。
思路
我们可以发现,按照 \(3, 1, 4\) 的方法分隔,每组的数相乘就是输出的值。
我们不妨猜测 \(n\) 为圆周率,按规律做即可。
头脑复杂度:\(O(\inf)\)
对应AC代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
#define fs first
#define sc second
const int N = 2e7 + 10, inf = 0x3f3f3f3f3f3f3f3f;
void init(){}
void solve() {
int t;
cin >> t;
string s = "31415926535897932384626433832795";
for(int i=0;i<t;i++){
int n = s[i] - '0';
int ans = 1;
while(n --){
int cur;
cin >> cur;
ans *= cur;
}
cout << ans << '\n';
}
}
signed main(){
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
init();
int t = 1;
//cin >> t;
while(t --) solve();
}
这属实没料到
D. Trivial Conjecture
题意
角谷猜想,给定整数 \(k\),输出一个数,使得进行操作后前 \(k\) 个数不出现 \(1\)。
思路
首先,角谷猜想能告诉我们一个正整数按照题给操作是一定会变为 \(1\) 的,而且操作数远小于原数字。
那么,上面有一个值得注意的点:正整数。
有意思的是,题目又没说一定要输出正整数。
输出 \(0\) 即可。
头脑复杂度:\(O(-1)\)
对应AC代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
#define fs first
#define sc second
const int N = 2e5 + 10, inf = 0x3f3f3f3f3f3f3f3f;
void init(){}
void solve() {
int tmp;
cin >> tmp;
cout << 0 << '\n';
}
signed main(){
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
init();
int t = 1;
//cin >> t;
while(t --) solve();
}
我是大蠢比
E. Not a Geometry Problem
题意
给定三个数,计算方法未知。
输出一个数,设这个数为 \(a\),标准答案为 \(b\),那么只要满足 \(\frac{|a-b|}{\max(1,|b|)} \le 10^6\),答案即为正确。
思路
\(a = 0\) 就可以让整个式子变为 \(1\)。
头脑复杂度:\(O(0)\)
对应AC代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
#define fs first
#define sc second
const int N = 2e7 + 10, inf = 0x3f3f3f3f3f3f3f3f;
void init(){}
void solve() {
cout << 0 << '\n';
}
signed main(){
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
init();
int t = 1;
//cin >> t;
while(t --) solve();
}
怎么我赛时的时候题面是俄文(?
F. Factorization
题意
给定一个数,输出它的最大质因数。
数为下面两者任选其一:
\(4167792762229302596005813\) 或
\(\begin{aligned}&502326648535222453054166634657971818804572580\\&255694785590270206376893052666523759828749572\\ &821869200397402455443130219791674914146276480\\&544216264509037323019703862145022909043607926\\&185591029614599889902115472391135622402044979\\&347133959392884686037208893694733655782993294\\&168167973855585231709683012084723677082273198\\&866111120369101303677409522966567521782715484\\&001992772768993119841291702786496058775824381\\&444079748162416745495656333618343487208147794\\&874337933873576016717726298883519261055062303\\&842274145012056670644839715140659887936321934\\&474824687778512706909988484451300384818197143\\&498259061041 \end{aligned}\)
思路
我们先随便找一个网站分解一下第一个数:\(991999999999 \times 4201403994187\)。
很有趣,第一个数是有规律的。
那么,我们不妨枚举因子的长度和 \(1\) 出现的位置,用大数硬跑,即可得到答案。
第二个数为:
\(\begin{aligned}&9999999999999999999999999999999999999999999999\\&9999999999999999999999999999999999999999999999\\&9999999999999999999999999999999999999999999999\\&9999999999999999999999999999999999999999999999\\&9999999999999999999999999999999999999999999999\\&9999999999999999999999999999999999199999999999\\&9999999999999999999999\\&*\\&5023266485352224530541666346579718188045725802\\&5569478559027020637689305266652375982874957282\\&1869200397402455443130219791674914146276480544\\&2162645090373230197038621450229090436079261855\\&9102961459988990211547239113562240204497934713\\&3959392884686037208893694733655783395155486996\\&15181802856501740938959\end{aligned}\)
头脑复杂度:\(O(妈妈生的)\)
对应AC代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
#define fs first
#define sc second
const int N = 2e7 + 10, inf = 0x3f3f3f3f3f3f3f3f;
void init(){}
void solve() {
string s;
cin >> s;
if (s == "4167792762229302596005813") cout << "4201403994187\n";
else cout << "50232664853522245305416663465797181880457258025569478559027020637689305266652375982874957282186920039740245544313021979167491414627648054421626450903732301970386214502290904360792618559102961459988990211547239113562240204497934713395939288468603720889369473365578339515548699615181802856501740938959\n";
}
signed main(){
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
init();
int t = 1;
//cin >> t;
while(t --) solve();
}
我还真去用网站分解后面的了(x
G. Colour Vision
题意
一张绿色的柱状图。
思路
首先,我们可以根据输入输出猜测,每个测试数据的第一行是下面两个字符串的长度。
其次,我们仿照前几个小时做的牛客愚人节\(A\) 题(小学数学必考数一数),把图片下载下来看一看颜色。
我们可以得到色值:\(01722B\)。
有趣,我们来看看比赛 \(id=1722\) 的 \(B\) 题(B. Colorblindness)。
题面告诉我们,大条件是蓝绿色盲,而我们需要把 \(G, B\) 当成一样的字母进行判断。
那么,我们不妨将所有的 \(G\) 替换为 \(B\),然后比较字符串即可。
当然,不知道 \(n\) 这里会不会真的是字符串长度,但我们反正只需考虑前 \(n\) 个字符即可。
头脑复杂度:\(O(\inf ^ 2)\)
对应AC代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
#define fs first
#define sc second
const int N = 2e5 + 10, inf = 0x3f3f3f3f3f3f3f3f;
void init(){}
void solve() {
int n;
cin >> n;
string s1, s2;
cin >> s1 >> s2;
bool f = true;
for(int i=0;i<n;i++){
if(s1[i] == 'G') s1[i] = 'B';
if(s2[i] == 'G') s2[i] = 'B';
if(s1[i] != s2[i]) f = false;
}
cout << (f ? "YES\n" : "NO\n");
}
signed main(){
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
init();
int t = 1;
cin >> t;
while(t --) solve();
}
什么解谜啊
H. Expected Twist
待补充,题解看不懂捏
I. Mountain Climber
题意
给定一个由小写字母组成的字符串,观察输入输出和题目,输出真假。
思路
爬山,爬什么山呢?当然是字母的山咯(x。
参考下面的网站,我们可以得到高的字母和低的字母:
高的字母为 \(\mathtt{tdfhklb}\),低的为 \(\mathtt{qypgj}\)。
继续观察,我们可以发现,我们需要从 \(0\) 高度向上爬,在过程中不向下爬到 \(0\) 的条件下,在最后爬回 \(0\),即为 \(YES\)。
头脑复杂度:\(O(?)\)
对应AC代码
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
#define fs first
#define sc second
const int N = 2e7 + 10, inf = 0x3f3f3f3f3f3f3f3f;
void init(){}
void solve() {
string s;
cin >> s;
string up = "tdfhklb", down = "qypgj";
int h = 0;
bool f = true;
for(char e : s){
if(up.find(e) < up.size()) h ++;
else if(down.find(e) < down.size()){
if(h == 0) f = false;
h --;
}
}
cout << (f && h == 0 ? "YES\n" : "NO\n");
}
signed main(){
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
init();
int t = 1;
cin >> t;
while(t --) solve();
}
爬不动了(x
J. Unmysterious Language
题意
用一个未知语言和评测机对话。
思路
下面给出尝试的过程:
- 提交一个 \(C++\) 代码,得到回复 "wrong answer I'm sorry, as a language model, I'm not able to compile and execute code."
- 盲猜为英文对话,提交一句 \(Accepted\),得到回复 "wrong answer I'm sorry, but I'm not sure what you are asking. If you have any question or need any assistance, feel free to ask and I'll do my best to help you."
- 推得需要一句话,或者某个关键词,我们随便聊一句 "How can I get an "Accepted" judge?",得到回复 "wrong answer I can give you AC, but did you forget something important?"
- 看来关键词不对,尝试疑问句 "You mean what important?",得到和上面一样的回复.
- 出于奇怪的礼貌,我们随口问一句 "If there is something important, please give me AC.",得到 \(Accepted.\),以及回复 "ok I will give you AC, as you wish."
有趣的是,本题的关键字只有 \(Please\),只要语句不长,就会被判通过。
于是,你可以自娱自乐一下:
"Please give me WA."
"ok I will give you AC, as you wish."
头脑复杂度:\(O(-\inf)\)
对应AC代码
代码?
please
对没错,就一个单词(什么垃圾关键词AI