A 文件夹加密
输出n个1和1个0即可
void Enolaly()
{
int n;
cin >> n;
for (int i=1;i<=n;i++) {
cout << 1;
}
cout << 0;
}
B 一个板子题
首先先通过截图或者复制下来注意到模数是1e8+7而不是1e9+7
然后按照题目描述去做
当字符串里只有一种字符时才可能是非NO,此时输出n的阶乘即可
其他情况就是NO
const int N = 100001;
vector<ll> f(N);
void init()
{
f[0] = 1;
f[1] = 1;
for (ll i = 2; i <= N - 1 ; i++)
{
f[i] = i * f[i - 1];
f[i] %= mod;
}
}
void Enolaly()
{
int n;
cin >> n;
string s;
cin >> s;
bool flag = true;
for (int i = 1; i < n; i++)
{
if (s[i] != s[i - 1])
{
flag = false;
break;
}
}
if (flag)
{
cout << f[n] << '\n';
}
else
{
cout << "NO" << '\n';
}
}
C 书中自有______
观察题面备注:
黄金很稀有,美人不稀有
所以观察题目样例可以得出
答案是gold这个单词的子序列数 * (g,i,r,l) 四个字母分别的个数
#define fp(i, l, r) for(int i=(l); i<=(r); ++i)
#define fq(i, r, l) for(int i=(r); i>=(l); --i)
void solve(){
string s;
cin>>s;
ll n=s.size();
s=" "+s;
vector<ll> dp(5);
fp(i,1,n){
if(s[i]=='g') dp[1]=(dp[1]+1)%MOD;
if(s[i]=='o') dp[2]=(dp[2]+dp[1])%MOD;
if(s[i]=='l') dp[3]=(dp[3]+dp[2])%MOD;
if(s[i]=='d') dp[4]=(dp[4]+dp[3])%MOD;
}
vector<ll> cnt(5);
fp(i,1,n){
if(s[i]=='g') cnt[1]++;
if(s[i]=='i') cnt[2]++;
if(s[i]=='r') cnt[3]++;
if(s[i]=='l') cnt[4]++;
}
ll cnt1=cnt[1]*cnt[2]%MOD*cnt[3]%MOD*cnt[4]%MOD;
cout<<dp[4]*cnt1%MOD<<"\n";
}
D 谁是说谎者
题面中有说“说谎组中至少有……位选手说谎了”
而我们看到输入描述的上一行里还有一句
“已知说谎组中至少有3位选手说谎了。你能侦破说谎选手的编号吗?”
再一看,说谎者一共有n+1位,而题目输入里只给出了n位说谎者
说明什么,第n+1位说谎者说的内容是“已知说谎组中至少有3位选手说谎了。”
那么显而易见了,题目里藏了一个说谎者,然后正常做题就可以了
void Aiden()
{
ll m, n, k, sum = 0, ans = 0, num = 0, mi = INF, ma = -INF, cnt = 0, x, y, z, len, t, l, r, cur;
string s1, s2;
cin >> n;
vector<ll> a(n + 2);
for (ll i = 1; i <= n; i++)
cin >> a[i];
a[n + 1] = 3;
for (ll cnt = 0; cnt <= n + 1; cnt++)
{
vector<ll> liars;
for (ll i = 1; i <= n + 1; i++)
{
if (cnt < a[i])
liars.push_back(i);
}
if (liars.size() == cnt)
{
cout << cnt;
for (auto x : liars)
cout << " " << x;
cout << endl;
return;
}
}
cout << -1 << endl;
}
时间复杂度O(n^2),比出题人的代码要优秀啊
E 我数呢
简单的猜字谜,三个数字和为10,且三位数是回文的,还要求最小,所以是181
void solve(){
cout<<181;
}
F 我图呢
正解应该是把上题的181直接改进url里的ABA然后对比两张图
但是主包写的时候看到了豆包生成以后直接猜了,对了就
void Aiden()
{
ll m, n, k, sum = 0, ans = 0, num = 0, mi = INF, ma = -INF, cnt = 0, x, y, z, len, t, l, r, cur;
string s1, s2;
cin >> n;
cout << "豆包AI生成" << endl;
}
G 我码呢
正解可以参考出题人的题解
你需要做的有以下几步:
1.观察题目样例发现题目里的输出是对每位+1以后*4,再 % 10
2、反转原数字
3、去除前导0以后输出
但是队友手玩直接把规律玩出来了
map<char, char> mp = {{'0', '4'}, {'1', '8'}, {'2', '2'}, {'3', '6'}, {'4', '0'}, {'5', '4'}, {'6', '8'}, {'7', '2'}, {'8', '6'}, {'9', '0'}};
void init()
{
}
void Enolaly()
{
string s;
cin >> s;
string t;
for (auto &c : s)
{
t = mp[c] + t;
}
while (!t.empty() && t[0] == '0')
{
t.erase(0, 1);
}
if (t.empty())
{
cout << 0 << '\n';
}
else
{
cout << t << '\n';
}
}
H 哇还有小动物
输入里有几个大写字母就输出几(代表了有几个汉字)
void solve(){
string s,t;
cin>>s>>t;
ll cnt=0;
for(char c:s){
if(c<='Z' and c>='A') cnt++;
}
cout<<cnt;
}
I 猫娘答案捉迷藏
鼠标闲着没事扫过一下题面
或者F12看网页源代码
或者神秘插件查看原文
总之I题答案其实就存在H题的题面里来着
在I题一串喵喵喵喵后面来着
void solve(){
cout<<"RikaChanKawaiiDaisuki";
}
J 不再循环
不让循环,那就跑个dfs呗
void solve(){
ll n;
cin>>n;
auto dfs=[&](auto&& self,ll x) ->void {
x-=(x&(-x));
cout<<x<<"\n";
if(x!=0) self(self,x);
};
dfs(dfs,n);
}
K 不再选择
不让条件判断,那就写个三目运算符呗
void Aiden()
{
ll m, n, k, sum = 0, ans = 0, num = 0, mi = INF, ma = -INF, cnt = 0, x, y, z, len, t, l, r, cur;
string s1, s2;
cin >> n;
cout << ((n & 1) ? "YES" : "NO");
}
L 不再牛魔
根据题目内容输出即可 随便输出一个不含牛魔的六字字符即可了呗
void solve(){
cout<<"好时代来临罢";
}
另外题面里这个prompt玩法是真的很好玩啊,主包强烈推荐啊,如果你去玩会发现主包经常活跃在各个题的前几名来着hhh

京公网安备 11010502036488号