题单1:基础练习(rating800~1200)

基础练习(rating800)

小技巧


当需要使用数组时,一般在main函数之外定义。初步评估需要的个数,设置一个较冗余的量。

// 例如需要98个空间
char str[101];

题单


  1. 4A:Watermelon
    尝试分别用if-else结构条件表达式实现。

  2. 71A:Way Too Long Words
    尝试分别用char[](字符数组)和string(字符串)实现

  3. 158A:Next Round
    用下述结构实现指定个数的输入

std::cin >> t;
while(t--){
// your code
}
  1. 282A:Bit++
    字符处理,试着找更简单的判断方式而不是判断所有的元素。

  2. 112A:Petya and Strings
    涉及字符大小写转换,可以先自己写转换(参考下述代码),再用转小写函数strlwr()实现
    涉及字符串大小比较,可以先自己写比较函数,再用字符比较函数strcmp()实现
    自己实现时建议用char[],调用官方库函数时建议用string类型

基础练习(rating900)

小技巧


int型整数所能表示的范围较少,因此当需要精确的表示大数时,建议使用long long int
为便于使用,可以采用宏定义#define INT long long int
更好的做法是使用cstdint库中的int64_t类型

#include <cstdint>
int64_t myVariable = 1234567890123456789LL;

题单


  1. 96A:Football
    采用变量cur记录当前状态,采用技术器count记录累计数量

  2. 160A:Twins
    先对数组进行排序,再用贪心算法解题。
    学习了解并使用std::sort()函数,其位于头文件#include <algorithm>

  3. 318A:Even Odds
    排序题

  4. 133A:HQ9+
    str1.find(str2):
    如果str1中存在子字符串str2,则返回第一次出现时的下标。
    倘若不存在,返回npos,其数值上等于-1。
    因此。可以用str.find("H") != -1来判断是否存在子序列“H”;
    倘若存在,该式结果为true,倘若不存在,该式结果为false。

  5. 580A:Kefa and First Steps
    思路跟第一题比较像

  6. 337A:Puzzles
    先排序,再查找

基础练习(rating1000)

题单


  1. 1A:Theatre Square
    数学问题

  2. 118A:String Task
    字符串处理。在体量较小的情况下,用多个cout语句打印可以节省代码时间。倘若体量较大,一般需要用char[]先存储需要打印的内容,最后再一次性打印。本题属于前者。

  3. 58A:Chat room
    字符串处理。可以事先存储需要匹配的序列char[6] m="hello"

  4. 122A:Lucky Division
    检查整除较容易。检查是否包含字符'4'或'7'较难,但鉴于题目限定在三位数(除了1000),包含字符'4'或'7'的数字有限,因此可以用switch语句遍历这些情况,直接返回true(暴力解法)。

  5. 479A:Expression
    字符串解释。

  6. 131A:cAPS IOCK
    字符串处理

  7. 230A:Dragons
    本题目的实现较复杂,但其实难度不难。

基础练习(rating1100)

题单


  1. 158B:Taxi
    首先统计每种人数的小组数量;其次依据人数情况讨论车俩安排。

  2. 456A:Laptops
    本题用排序的方法做容易超时。应当从数学原理的角度出发进行更快捷、方便的判断。

  3. 270A:Fancy Fence
    数学

  4. 519B:A and B and Compilation Errors
    排序

  5. 1327A:Sum of Odd Integers
    数学

基础练习(rating1200)

提醒


对于下述语句,返回的是1(True)/0(False),即:条件语句的真假,而非后面的值之一。

std::cout << (a < b) ? "A win" : "B win";

如果需要返回值,则需要用括号包含整个条件运算符

std::cout << ((a < b) ? "A win" : "B win");

题单


  1. 492B. Vanya and Lanterns

题目最后输出的是一个浮点数,当cout语句在输出大数时会自动将其转为科学计数法,这可能会导致丢失精度。
为解决此问题,可以采用#include <iomanip>中的方法,设置输出格式,具体语句如下:
std::cout << std::fixed << std::setprecision(1) << d

  1. 466A. Cheap Travel

主要分三种情形:①套票更贵、②套票只有一次、③套票便宜

  1. 514A. Chewbaсca and Number

建议采用字符串处理。
应当注意,数字的ASCII码是0~9排序的。(而不是1,2,...,9,0)

  1. 1363A. Odd Selection

考虑几种特殊情况:①选择全部数字,②所有数字都是奇数
注意换行“YES\n”

  1. 459A. Pashmak and Garden

数学问题,分三种情形:
dx = 0、dy = 0、|dx|=|dy|

posted @   SXWisON  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示