【题解】跨年ak场题解

跨年ak场出题组:兰子、沙烬、智乃给大家拜年了!!!

A

如果输出5,说明所有题都把你防住了,这样你就通过了0题,那么这题就通过不了。

输出0~4中任意一个数字都可以通过本题。

参考代码:(php语言)

0

B

画图题。注意输入右斜杠是"\"。

参考代码:

#include<bits/stdc++.h>
using namespace std;

int n ;

int main() {
    scanf("%d",&n);

        for (int j = 1 ; j <= n ; j ++) {
            string s;
            for (int k = 1 ; k < j ; k ++) {
                s += ' ';
            }
            s += "\\";
            for (int k = 1 ; k <= n-j ; k ++) {
                s += ' ';
            }
            s += "|";
            for (int k = 1 ; k <= n-j ; k ++) {
                s += ' ';
            }
            s += '/';
            for (int k = 1 ; k < j ; k ++) {
                s += ' ';
            }
            cout << s << endl;
        }
        string s;
        for (int j = 1 ; j <= n ; j ++) {
            s += '-';
        }
        s += 'O';
        for (int j = 1 ; j <= n ; j ++) {
            s += '-';
        }
        cout << s << endl;
        for (int j = 1 ; j <= n ; j ++) {
            string s;
            for (int k = 1 ; k <= n-j ; k ++) {
                s += ' ';
            }
            s += "/";
            for (int k = 1 ; k < j ; k ++) {
                s += ' ';
            }
            s += '|';
            for (int k = 1 ; k < j ; k ++) {
                s += ' ';
            }
            s += '\\';
            for (int k = 1 ; k <= n-j ; k ++) {
                s += ' ';
            }
            cout << s << endl;
        }
}

C

留给小红的攒雪球的时间是小紫的时间减去1。所以最终的答案是

参考代码:

#include<bits/stdc++.h>
using namespace std;

int main() {
    long long x, y, a;
    scanf("%lld%lld%lld",&x,&y,&a);
    printf("%lld",(y*a-1)/x);
}

D

显然 X 都可以当成 9 来看,因为求的是最大的可能。

所以把所有 X 替换成 9 ,排序一下即可。

彩蛋:

智乃:我就是要卡掉那些觉得X是无敌的人!

结果:最终数据还是弱了,放过了部分错解~

感谢智乃大魔王的仁慈吧,哈哈哈哈嗝(

参考代码:

#include<bits/stdc++.h>
using namespace std;
const int MAXN=100005;
struct node
{
    string data;
    int id;
}a[MAXN];
int n;
int main()
{
    cin>>n;
    assert(n<=1000);
    for(int i=1;i<=n;++i)
    {
        cin>>a[i].data;
        assert(a[i].data.size()<=100);
        a[i].id=i;
        for(auto &it:a[i].data)
        {
            if(it=='X')it='9';
        }
    }
    sort(a+1,a+1+n,[](const node &A,const node &B){
        if(A.data.size()!=B.data.size())
            return A.data.size()>B.data.size();
        return A.data>B.data;
    });
    cout<<a[1].id;
    return 0;
}

E

本场唯一一个需要一定思维的题目。

我们先以下面的字符串举例:"afnabasfoab"

不难想到,最后一个'b',谁的 t 串添加到这里谁就赢了。那么字符串标记为。其中中括号为必胜区间。

那么,这个 b 到上一个 b 之间所有的字母都是必败的。因为如果某人“不小心”取到了这些字母中的任意一个,对方只要在后面加一个 'b' ,就直接到了最后一个 b 了。

因此,第五个字母 'b' 后面这些字母都是必败的。字符串标记为 。其中小括号为必败区间。

那么第四个字母'a'就是必胜的,因为只要某人取到了这个 a ,对方就不得不取后面的小括号区间的某个字母,导致失败。

以此类推,字符串可以标记为 。标记的逻辑是:最后一个字母 为必胜,那么找到它前面离它最近的那个 ,这段区间为必败。必败区间前面的那个字母为必胜,以此类推,标记出所有区间。

那么怎么评定胜负的标准呢?很简单,若第一个字母在必败区间,那么小红必败。否则小红必胜,因为小红可以直接取到第一个必败区间前面的那一个字母,迫使紫m去取必败区间。

彩蛋:如果要求每次添加的时候t都是s的子串,解法是后缀自动机next指针dag图上求sg函数,恕出题人不会qwq

参考代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    string s;
    cin>>s;
    int i,j=s.length()-1;
    for(i=j-1;i>=0;i--){
        if(s[i]==s[j])j=i-1,i=j;
    }
    if(j==-1)cout<<"yukari";
    else cout<<"kou";
}
全部评论
最后一题看作在子序列自动机转移图(dag)上求sg函数更直接
点赞 回复 分享
发布于 2022-02-06 11:33
D不太对吧,比如下面这个样例,按照题解,答案是2,但正确答案应该是1吧(125有可能是最大的)
点赞 回复 分享
发布于 2022-01-31 21:06

相关推荐

想干测开的tomca...:让我来压力你!!!: 这份简历看着“技术词堆得满”,实则是“虚胖没干货”,槽点一抓一大把: 1. **项目描述是“技术名词报菜名”,没半分自己的实际价值** 不管是IntelliDoc还是人人探店,全是堆Redis、Elasticsearch、RAG这些时髦词,但你到底干了啥?“基于Redis Bitmap管理分片”是你写了核心逻辑还是只调用了API?“QPS提升至1500”是你独立压测优化的,还是团队成果你蹭着写?全程没“我负责XX模块”“解决了XX具体问题”,纯把技术文档里的术语扒下来凑字数,看着像“知道名词但没实际动手”的实习生抄的。 2. **短项目塞满超纲技术点,可信度直接***** IntelliDoc就干了5个月,又是RAG又是大模型流式响应又是RBAC权限,这堆活儿正经团队分工干都得小半年,你一个后端开发5个月能吃透这么多?明显是把能想到的技术全往里面塞,生怕别人知道你实际只做了个文件上传——这种“技术堆砌式造假”,面试官一眼就能看出水分。 3. **技能栏是“模糊词混子集合”,没半点硬核度** “熟悉HashMap底层”“了解JVM内存模型”——“熟悉”是能手写扩容逻辑?“了解”是能排查GC问题?全是模棱两可的词,既没对应项目里的实践,也没体现深度,等于白写;项目里用了Elasticsearch的KNN检索,技能栏里提都没提具体掌握程度,明显是“用过但不懂”的硬凑。 4. **教育背景和自我评价全是“无效信息垃圾”** GPA前10%这么好的牌,只列“Java程序设计”这种基础课,分布式、微服务这些后端核心课提都不提,白瞎了专业优势;自我评价那堆“积极认真、细心负责”,是从招聘网站抄的模板吧?没有任何和项目挂钩的具体事例,比如“解决过XX bug”“优化过XX性能”,纯废话,看完等于没看。 总结:这简历是“技术名词缝合怪+自我感动式凑数”,看着像“背了后端技术栈名词的应届生”,实则没干货、没重点、没可信度——面试官扫30秒就会丢一边,因为连“你能干嘛”都没说清楚。
点赞 评论 收藏
分享
评论
9
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务