首页 > 编程语言 >第一讲C++

第一讲C++

时间:2025-01-23 16:09:18浏览次数:1  
标签:string 第一 拼图 problems 奇偶性 C++ 规则 YES

第一题Long Loong
For a positive integer X, the Dragon String of level X is a string of length (X+3) formed by one L, X occurrences of o, one n, and one g arranged in this order.
You are given a positive integer N. Print the Dragon String of level N.
Note that uppercase and lowercase letters are distinguished.
思路:1.输入n;
2.先输出L;
3.通过for 循环输出N个o;
4.输出ng;

第二题YES or YES?
There is a string s of length 3, consisting of uppercase and lowercase English letters. Check if it is equal to "YES" (without quotes), where each letter can be in any case. For example, "yES", "Yes", "yes" are all allowable.
思路:因为yes的形式可以是YES,YEs,YeS,Yes,yES,yEs,yes,yeS.对每个进行判断较繁琐,所以我将输入的s每个字母转成大写,将其与YES进行比较

第三题Even?Odd?G
Bessie那惨无人道的二年级老师搞了一个有 N 个正整数 I 的表叫Bessie去判断“奇偶性”(这个词语意思向二年级的学生解释,就是“这个数是单数,还是双数啊?”)。Bessie被那个表的长度深深地震惊到了,竟然跟栋栋的泛做表格一样多道题!!!毕竟她才刚刚学会数数啊。
写一个程序读入N个整数,如果是双数,那么在单立的一行内输出"even",如果是单数则类似地输出"odd".
思路:对于奇偶性判断,首先想法是将一个数除以2,若能整除则为偶数,若不能整除则为奇数。但在这题中,数字最大可到10的60次方,在C++中会溢出,并且,每个数字最后一位数字的奇偶性和数字本身奇偶性一致,所以可以只将每个数字的最后一位数字提取出来,判断最后一位数字的奇偶性。

第四题Problem Generator
Vlad is planning to hold m rounds next month. Each round should contain one problem of difficulty levels 'A', 'B', 'C', 'D', 'E', 'F', and 'G'.
Vlad already has a bank of n problems, where the i-th problem has a difficulty level of ai. There may not be enough of these problems, so he may have to come up with a few more problems.
Vlad wants to come up with as few problems as possible, so he asks you to find the minimum number of problems he needs to come up with in order to hold m rounds.
For example, if m=1, n=10, a= 'BGECDCBDED', then he needs to come up with two problems: one of difficulty level 'A' and one of difficulty level 'F'.
思路:1.先统计已有的题目中,每种难度的题目有多少题;
2.通过循环判断每种难度题目还需几题;
3.将每种难度需要题数相加.

第五题rules
小A制定了一些规则,每条规则有一个代号,代号为不超过10的9次方的非负整数。
小A的国家有n位居民,每位居民每天会且仅会遵守1条规则。小A记录了m天里每天每位居民遵守的规则代号。
现在小 A 想要考察代号为k的规则是否符合民意,具体考察方法如下:
• 如果在某一天里,有大于等于一半的人遵守了规则k,那么小A认为在这一天规则k是符合民意的。
• 如果在大于等于一半的天数里,规则k符合民意,那么他会认为规则k是正确的。否则,他会认为规则k是错误的。
如果小A的规则k是正确的,请你输出YES,否则请你输出NO。
思路:1.通过循环对一天中遵守规则k的人数进行统计;
2.判断这一天规则k是否符合民意,若符合则cnts+1;
3.通过循环统计m天中规则k符合民意天数;
4.判断cnts是否大于等于m的一半.

第六题Many Replacement
You are given a string S of length N consisting of lowercase English letters.
You will perform an operation Q times on the string S. The i-th operation(1≤i≤Q) is represented by a pair of characters(ci,di), which corresponds to the following operation:
• Replace all occurrences of the character ci in S with the character di.
Print the string S after all operations are completed.
思路:这题最开始想的是通过循环q次每次都在循环n次将str逐个转换,但考虑到1<=n<=2e5,每次循环都转换必然超时。所以考虑找到26个小写单词在q次转换后每个对应的字母。

第七题 更好的交换
小 S 有一个奇怪的机关拼图。这个拼图可以看作一个 n行 n 列的方阵 A,第 i行第 j列的位置上有一个正整数 Ai,j。
与寻常拼图不同的是,这个机关拼图上的数字不能随意移动,必须按照如下规则之一操作:
• 选择拼图上的第 x行和第 y 行,交换这两行;
• 选择拼图上的第 x列和第 y列,交换这两列。
为了复原这个拼图,小 S 将会操作共 m 次,每次操作格式如下:
• 1 x y,表示交换第 x行和第 y行;
• 0 x y,表示交换第 x列和第 y列;
请你输出复原后的拼图。
思路:第一次写的时候在循环中每次操作都把整个方阵一起交换,因为方阵是二维数组,导致了几次超时。后来发现,在每次操作时,行列变换并不互相影响,所以可以通过两个数组row[],col[]分别记录操作后的行列对应最开始方阵的行列

学习总结:学会计算程序的时间复杂度,通过问题6,问题7的解决,明白在程序超时时该如何进行优化。并且通过学习,了解了一些C++的语法。

标签:string,第一,拼图,problems,奇偶性,C++,规则,YES
From: https://www.cnblogs.com/ALANYLLL/p/18687960

相关文章

  • c++迷宫问题(migong)
    今天的题目叫“迷宫问题(migong)”,是“DFS深度优先搜索递归”一类的。题目描述设有一个N*N(2<=N<10)方格的迷宫,入口和出口分别在左上角和右上角。迷宫格子中分别放0和1,0表示可通,1表示不能,入口和出口处肯定是0。迷宫走的规则如下所示:即从某点开始,有八个方向可走,前进方格中数......
  • c++瓷砖
    今天的题目叫“瓷砖”,是“DFS深度优先搜索递归”一类的。题目描述在一个w×h的矩形广场上,每一块1x1的地面都铺设了红色或黑色的瓷砖。小谢同学站在某一块黑色的瓷砖上,他可以从此处出发,移动到上、下、左、右四个相邻的且是黑色的瓷砖上。现在他想知道,通过重复上述移动所能......
  • ACM寒假集训第一讲博客1
    num1:code:该题使用C语言include<stdio.h>intmain(void){intn;scanf("%d",&n);printf("L");for(inti=0;i<n;i++){printf("o");}printf("ng");}解题思路:直接打印出L与ng,其次使用循环输出n个o即可。num2:code:C++语言includeinc......
  • 【基础】愤怒的奶牛 USACO c++
    描述FarmerJohn建造了一个有N(2<=N<=100,000)个隔间的牛棚,这些隔间分布在一条直线上,坐标是x1,…,xN(0<=xi<=1,000,000,000)。他的C(2<=C<=N)头牛不满于隔间的位置分布,它们为牛棚里其他的牛的存在而愤怒。为了防止牛之间的互相打斗,FarmerJohn想把这些牛安置在指定的隔间,所......
  • 打卡信奥刷题(651)用C++信奥P8396[普及组/提高] [CCC2022 S2] Good Groups
    [CCC2022S2]GoodGroups题目背景请注意:这道题是CCO2022J4GoodGroups的加强版。管理备注:似乎没有加强。题目描述一个班级会被分成ggg个组,每个组有三个人,这......
  • leetcode——缺失的第一个整数(java)
    给你一个未排序的整数数组nums,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为O(n)并且只使用常数级别额外空间的解决方案。示例1:输入:nums=[1,2,0]输出:3解释:范围[1,2]中的数字都在数组中。示例2:输入:nums=[3,4,-1,1]输出:2解释:1在数组中,但2......
  • 详解类与对象——c++对象模型和this指针
    (^_^)一.成员变量和成员函数分开存储只有非静态成员变量才属于类的对象上classPerson{public:Person(){mA=0;}//非静态成员变量占对象空间intmA;//静态成员变量不占对象空间staticintmB;//函数也不占对......
  • 102400118 林嘉祚 集训第一专题
    AC截图1、LongLoong本题易知字符串开头为L,结尾为ng,唯一不同的是中间o的个数,于是想到用3个字符串拼接得到目标字符串。(直接用for循环输出似乎更简单)#include<iostream>#include<string>usingnamespacestd;intmain(){ intn; cin>>n; stringstr="L"; stri......
  • 零基础ACM学习的第一天
    importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub Scannersc=newScanner(System.in); intt=sc.nextInt(); System.out.print("L"); for(inti=0;i<t;i++){ System.out.p......
  • c++ 智能指针
    1. unique_ptr:这种智能指针是用于独占一份内存资源,一个资源也就只允许被一个unique_ptr占用。离开作用域后自动删除,无需显式调用delete。并且不能复制,只能转移。原理实现:template<typenameT>classunique_ptr{private:T*ptr;public:explicitunique_ptr(T*p......