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

谢谢大家来看题解来着

ak非常激动啊