《acm》竞赛有过只有一个人参加的么?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《acm》竞赛有过只有一个人参加的么?相关的知识,希望对你有一定的参考价值。

参考技术A

不是

ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate Programming Contest(ACM-ICPC或ICPC)是由美国计算机协会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近40年的发展,ACM国际大学生程序设计竞赛已经成为全球最具影响力的大学生程序设计竞赛,被誉为计算机软件领域的奥林匹克竞赛。

acm是3人一组的,以学校为单位报名的,也就是说要得到学校同意,还要有2个一起搞的。其实可能是你不知道你们学校搞acm的地方,建议你好好询问下你们学校管科技创新方面的人。

建议你找几个兴趣相同的一起做,互相探讨效果好多了,团队合作也是acm要求的3大能力之一。
数据结构远远不够的,建议你看算法导论,黑书,oj的话个人觉得还是poj好,有水题有好题,而且做的人多,要解题报告什么的也好找。我们就是一些做acm的学生一起搞,也没老师,这样肯定能行的。

基础的话是语言,然后数据结构,然后算法。

ACM有三个方向:算法,数学,实现 三种能力:英文,自学,团队协作。


简单的说,你要能读懂英文的题意描述,要有一门acm能使用的编程语言,要会数据结构,有一点数学基础,一点编程方面天赋,要有兴趣和毅力(最重要),就具有做ACM的基本条件了。



做acm我推荐c,c++也可以,java在某些情况下好用,但是大多数情况的效率和代码量都不大好,所以建议主用c++,有些题目用java。

2021-2022-2 ACM集训队每周程序设计竞赛(10) - 问题 A: 还原撕碎的字条,哄笑生气的毛毛 - 题解

传送门


还原撕碎的字条,哄笑生气的毛毛

时间限制:1秒
空间限制:128M


题目描述

坏坏的小F递给了MM一张纸条,上面写着:

只 有 不 聪 明 的 人 才 能 看 到 只有不聪明的人才能看到

MM看到后,一气之下把这张纸条撕成了很多份,并扔到了碎纸盒中。冷笑道:“有本事把它给我还原出来”。

细心的小F观察到了MM扔纸条的规律:

MM每次都会从纸条的左边撕掉一段(假设不会撕坏上面的字),然后放入碎纸盒里(的最上面)。

最后剩下的一段纸条也会扔到碎纸盒中

如果不能理解,请参考视频版描述:

BiliBili视频地址:https://www.bilibili.com/video/BV1VB4y117vL

或者播放题目描述PPT:https://letmefly.xyz/Links/Redirect/id.html?10

视频的意思是:

  1. 原始纸条是“只有不聪明的人才能看到”

  2. MM在左边剪了一刀,变成了“只有不聪”和“明的人才能看到”

  3. MM把左边的纸条扔进了碎纸盒,碎纸盒中的纸条为“只有不聪”,MM手中的纸条为“明的人才能看到”

  4. MM在左边剪了一刀,变成了“明的人才”和“能看到”

  5. MM把左边的纸条扔进了碎纸盒,碎纸盒中的纸条从上到下依次为“明的人才”和“只有不聪”,MM手中的纸条为“能看到”

  6. MM把手中剩下的纸条“能看到”也扔入了碎纸盒,最终碎纸盒中的纸条从上到下一次是: “能看到”,“明的人才”和“只有不聪”


输入描述

输入包括一行空格隔开的一些字符串,代表碎纸盒中从上到下的纸条上的内容

  • 1 ≤ 字 符 串 ≤ 1 0 3 1\\leq 字符串 \\leq 10^3 1103
  • 1 ≤ 字 符 串 . l e n g t h ≤ 1 0 3 1\\leq 字符串.length\\leq 10^3 1.length103

请放心,和样例不同,测试数据中纸条上的文字全是英文,不包含中文


输出描述

输出包括一行一个字符串

请你根据碎纸盒中纸条上的内容,来还原出原始纸条并输出


样例一

输入

能看到 明的人才 只有不聪

输出

只有不聪明的人才能看到

样例二

输入

Fly Me Let

输出

LetMeFly

样例三

输入

H H

输出

HH

题目分析

本题中碎纸盒其实就是一个栈。

也就是说给你出栈顺序要你求原来的出入栈顺序

解法也很简单,只需要反过来将出栈的内容按顺序压入一个新的栈中,再依次出栈即可得到原始序列。


AC代码

#include <bits/stdc++.h>
using namespace std;
#define mem(a) memset(a, 0, sizeof(a))
#define dbg(x) cout << #x << " = " << x << endl
#define fi(i, l, r) for (int i = l; i < r; i++)
#define cd(a) scanf("%d", &a)
typedef long long ll;
int main() 
    string s;
    stack<string> st;
    while (cin >> s) 
        st.push(s);
    
    while (st.size()) 
        cout << st.top();
        st.pop();
    
    return 0;

点关注,不迷路

原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/124513273

以上是关于《acm》竞赛有过只有一个人参加的么?的主要内容,如果未能解决你的问题,请参考以下文章

参加第十届的队员给智能车竞赛的建议:抄能力+钞能力使得一届不如一届

ACM比赛一个学校能派几个队?

参加kaggle竞赛是怎样一种体验?

2021-2022-2 ACM集训队每周程序设计竞赛(10) - 问题 E: 十万人如何交换名片- 题解

acm经验(转)

比较好的大学生C语言竞赛编程题 或者比较有档次的竞赛都有哪些(本科、研究生可以参加的) ?