记录洛谷刷题QAQ


一、[USACO09OCT]Even? Odd? G

题目描述

Bessie’s cruel second grade teacher has assigned a list of N (1 <= N <= 100) positive integers I (1 <= I <= 10^60) for which Bessie must determine their parity (explained in second grade as ‘Even… or odd?’). Bessie is overwhelmed by the size of the list and by the size of the numbers. After all, she only learned to count recently.

Write a program to read in the N integers and print ‘even’ on a single line for even numbers and likewise ‘odd’ for odd numbers.

POINTS: 25

Bessie那惨无人道的二年级老师搞了一个有 N 个正整数 I 的表叫Bessie去判断“奇偶性”(这个词语意思向二年级的学生解释,就是“这个数是单数,还是双数啊?”)。Bessie被那个表的长度深深地震惊到了,竟然跟栋栋的泛做表格一样多道题!!!毕竟她才刚刚学会数数啊。

写一个程序读入N个整数,如果是双数,那么在单立的一行内输出"even",如果是单数则类似地输出"odd".

输入格式

* Line 1: A single integer: N

* Lines 2…N+1: Line j+1 contains I_j, the j-th integer to determine even/odd

输出格式

* Lines 1…N: Line j contains the word ‘even’ or ‘odd’, depending on the parity of I_j

样例 #1

样例输入 #1

2
1024
5931

样例输出 #1

even
odd

提示

Two integers: 1024 and 5931

1024 is eminently divisible by 2; 5931 is not

代码如下:

//一个简单的函数
#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>int main()
{   int n;//n个数scanf("%d",&n);//一开始这个方法,发现只有50分,原来是数值太大了,换个方法
//  for(int i = 1;i <= n;i++)
//  {//      long long num;
//      scanf("%d",&num);
//      if(num%2 == 0)
//          printf("even\n");
//      else if(num%2 != 0)
//          printf("odd\n");
//  } char num[1000];for(int i = 1;i <= n;i++){scanf("%s",num);int len = strlen(num);if(num[len -1] == '0'||num[len - 1] == '2'||num[len - 1] == '4'||num[len - 1] == '6'||num[len - 1] == '8'){printf("even\n");   }   else printf("odd\n");} return 0;
}

[USACO09OCT]The Robot Plow G

题目描述

Farmer John has purchased a new robotic plow in order to relieve him from the drudgery of plowing field after field after field. It achieves this goal but at a slight disadvantage: the robotic plow can only plow in a perfect rectangle with sides of integer length.

Because FJ’s field has trees and other obstacles, FJ sets up the plow to plow many different rectangles, which might end up overlapping. He’s curious as to just how many squares in his field are actually plowed after he programs the plow with various plow instructions, each of which describes a rectangle by giving its lower left and upper right x,y coordinates.

As usual, the field is partitioned into squares whose sides are parallel to the x and y axes. The field is X squares wide and Y squares high (1 <= X <= 240; 1 <= Y <= 240). Each of the I (1 <= I <= 200) plow instructions comprises four integers: Xll, Yll, Xur, and Yur (1 <= Xll <= Xur; Xll <= Xur <= X; 1 <= Yll <= Yur; Yll <= Yur <= Y) which are the lower left and upper right coordinates of the rectangle to be plowed. The plow will plow all the field’s squares in the range (Xll…Xur, Yll…Yur) which might be one more row and column than would initially be assumed (depending on how you go about your assumptions, of course).

Consider a field that is 6 squares wide and 4 squares high. As FJ issues a pair of plowing instructions (shown), the field gets plowed as shown by ‘*’ and ‘#’ (normally plowed field all looks the same, but ‘#’ shows which were most recently plowed):

......             **....             #####.
......  (1,1)(2,4) **....  (1,3)(5,4) #####.
......             **....             **....
......             **....             **....

A total of 14 squares are plowed.

POINTS: 25

Farmer John为了让自己从无穷无尽的犁田工作中解放出来,于是买了个新机器人帮助他犁田。这个机器人可以完成犁田的任务,可惜有一个小小的缺点:这个犁田机器人一次只能犁一个边的长度是整数的长方形的田地。

因为FJ的田地有树和其它障碍物,所以FJ设定机器人去犁很多不同的长方形。这些长方形允许重叠。他给机器人下了P个指令,每个指令包含一个要犁长方形的地。这片田地由长方形的左下角和右上角坐标决定。他很好奇最后到底有多少个方格的地被犁过了。

一般来说,田地被分割为很多小方格。这些方格的边和x轴或y轴平行。田地的宽度为X个方格,高度为Y个方格 (1 <= X <= 240; 1 <= Y <= 240). FJ执行了I (1 <= I <= 200)个指令,每个指令包含4个整数:Xll, Yll, Xur, Yur (1 <= Xll <= Xur; Xll <= Xur <=X; 1 <= Yll <= Yur; Yll <= Yur <= Y), 分别是要犁的长方形的左下角坐标和右上角坐标。机器人会犁所有的横坐标在Xll…Xur并且纵坐标在Yll…Yur范围内的所有方格的地。可能这个长方形会比你想象的多一行一列(就是说从第Xll列到第Xur列一共有Xur - Xll + 1列而不是Xur - Xll列)。

考虑一个6方格宽4方格高的田地。FJ进行了2个操作(如下),田地就被犁成"*“和”#“了。虽然一般被犁过的地看起来都是一样的。但是标成”#"可以更清晰地看出最近一次被犁的长方形。

一共14个方格的地被犁过了。

输入格式

* Line 1: Three space-separated integers: X, Y, and I

* Lines 2…I+1: Line i+1 contains plowing instruction i which is described by four integers: Xll, Yll, Xur, and Yur

输出格式

* Line 1: A single integer that is the total number of squares plowed

样例 #1

样例输入 #1

6 4 2
1 1 2 4
1 3 5 4

样例输出 #1

14

提示

As in the task’s example.

代码如下:

//粗糙的代码,不够优雅哈哈哈
#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>int main()
{   int x,y, n;scanf("%d%d%d",&x,&y,&n);//田地的长宽,还有执行的次数int num[x+1][y+1];int x1,y1,x2,y2;for(int i = 1;i <= x;i++){for(int j = 1;j <= y;j++){num[i][j] = 0;   }   } int sum = 0;for(int i = 1;i <= n;i++)//执行了n次 {scanf("%d%d%d%d",&x1,&y1,&x2,&y2); for(int j = x1;j <= x2;j++){for(int t = y1;t <= y2;t++){if(num[j][t] == 0){num[j][t] = 1;sum++;}        }   }}printf("%d\n",sum);return 0;
}

三、pb的游戏(1)

题目背景

(原创)

有一天 pb和zs玩游戏 你需要帮zs求出每局的胜败情况

题目描述

游戏规则是这样的: 每次一个人可以对给出的数进行分割,将其割成两个非零自然数,之后由另一个人选择留下两个数中的其中一个;之后由另一个人进行分割这个剩下的数,重复步骤……

当一个人无法对数进行分割的时候游戏结束,另一个人获胜

现在要你求出N次游戏的胜败

每局由pb先进行分割,如果pb赢输出"pb wins" 如果zs赢输出"zs wins"

注:双方都是绝顶聪明的

输入格式

第一行一个数N,表示数据组数

之后N行,每行一个数M,表示每局初始的数

输出格式

共N行,每行一串字符 表示游戏结果

样例 #1

样例输入 #1

5
1
3
7
20
5

样例输出 #1

zs wins
zs wins
zs wins
pb wins
zs wins

提示

1<N<50
1<=m<=1000000000

代码如下:

#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>int main()
{   int n;//数据的组数scanf("%d",&n);int num; for(int i = 1;i <= n;i++){scanf("%d",&num);//其实你会发现,当给出的数字为奇数时,zs会赢//同理,为偶数时,pd会赢,那么这道题就很简单了if(num %2 == 0)printf("pb wins\n");else if(num %2 != 0)printf("zs wins\n"); }return 0;
}

四、【深基15.例1】询问学号

题目描述

有 n(n≤2×106)n(n \le 2 \times 10^6)n(n≤2×106) 名同学陆陆续续进入教室。我们知道每名同学的学号(在 111 到 10910^9109 之间),按进教室的顺序给出。上课了,老师想知道第 iii 个进入教室的同学的学号是什么(最先进入教室的同学 i=1i=1i=1),询问次数不超过 10510^5105 次。

输入格式

第一行 222 个整数 nnn 和 mmm,表示学生个数和询问次数。

第二行 nnn 个整数,表示按顺序进入教室的学号。

第三行 mmm 个整数,表示询问第几个进入教室的同学。

输出格式

输出 mmm 个整数表示答案,用换行隔开。

样例 #1

样例输入 #1

10 3
1 9 2 60 8 17 11 4 5 14
1 5 9

样例输出 #1

1
8
5

代码如下:

//数据比较弱,这样也过了
#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>int main()
{   int n, m;//n是学生个数,m是询问次数scanf("%d%d",&n,&m);int num[n+1];for(int i = 1;i <= n;i++){scanf("%d",&num[i]);  } int pot;for(int i = 1;i <= m;i++){scanf("%d",&pot);printf("%d\n",num[pot]);}return 0;
}

[AHOI2017初中组]cover

题目背景

以下为不影响题意的简化版题目。

题目描述

一个 n×nn\times nn×n 的网格图(标号由 111 开始)上有 mmm 个探测器,每个探测器有个探测半径 rrr ,问这 n×nn\times nn×n 个点中有多少个点能被探测到。

输入格式

第一行 333 个整数 n,m,rn,m,rn,m,r ;

接下来 mmm 行,每行两个整数 x,yx,yx,y表示第 iii 个探测器的坐标。

输出格式

能被探测到的点的个数。

样例 #1

样例输入 #1

5 2 1
3 3
4 2

样例输出 #1

8

提示

1≤n,m≤1001\le n,m\le 1001≤n,m≤100

代码如下:

//一个不够优雅的解答,这很阿尼亚
#include<string.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>int main()
{   int n, m, r;//网格边长,探测仪个数,探测半径scanf("%d%d%d",&n,&m,&r);int num[n+1][n+1];for(int i = 1;i <= n;i++){for(int j = 1;j <= n;j++){num[i][j] = 0; } }int sum = 0;for(int t = 1;t <= m;t++){int x,y;scanf("%d%d",&x,&y);num[x][y]  = 1;double len;for(int i = 1;i <= n;i++){for(int j = 1;j <= n;j++){len = sqrt((x - i)*(x - i) + (y - j)*(y - j));    if(len <= r){num[i][j] = 1;    }       }}}for(int i = 1;i <= n;i++){for(int j = 1;j <= n;j++){if(num[i][j] == 1)sum++;}}printf("%d\n",sum);return 0;
}

洛谷刷题C语言:Even? Odd? G、The Robot Plow G、pb的游戏(1)、询问学号、cover相关推荐

  1. 洛谷刷题C语言:潇湘の雨、分糖果、Addition、Ljeto、TRI

    记录洛谷刷题C语言QAQ 「PMOI-0」潇湘の雨 题目背景 (原 LZOI-1,改名已经 PMOI 成员同意) lhm-01 题目描述 言琢დ 在一个 2n×2n2n \times 2n2n×2n ...

  2. 洛谷刷题C语言:Bold、饱食、公平の意、DOM、

    记录洛谷刷题C语言qaq [COCI2020-2021#6] Bold 题目描述 Paula 给 Daniel 写了一封信,她需要加粗文本的字体,以便视力恶化的 Daniel 阅读. 信可以用 . 和 ...

  3. 洛谷刷题C语言:陶瓷项链、Cow Gymnastics B、Where Am I? B、Hello, 2020!、SIR 模型

    记录洛谷刷题C语言 一.[NOI2000] 瓷片项链 题目描述 原始部落用一种稀有的泥土烧制直径相同的圆瓷片并串成项链,串的时候沿瓷片的直径方向顺次连接,瓷片之间没有空隙也不重叠,一条项链至少由一个瓷 ...

  4. 洛谷刷题C语言:切蛋糕、概率、Bridž、NOTE、DOMINO

    记录洛谷刷题C语言qaq [NOI Online 2021 入门组] 切蛋糕 题目描述 Alice.Bob 和 Cindy 三个好朋友得到了一个圆形蛋糕,他们打算分享这个蛋糕. 三个人的需求量分别为 ...

  5. 洛谷刷题C语言:Physics Problem、PARKING、Trol、信息学竞赛、POT

    记录洛谷刷题C语言 「dWoi R1」Physics Problem 题目背景 面对白板上的物理题,王马陷入了沉思 -- 题目描述 有 nnn 个状态,编号为 111 到 nnn.这 nnn 个状态之 ...

  6. 洛谷刷题C语言:Fergusonball Ratings、Don‘t Mozheng. /oh、gcd.、幻想乡扑克游戏、PMTD

    记录洛谷刷题C语言qaq [CCC2022 J2] Fergusonball Ratings 题目描述 现在有一个球队需要你评价. 球队中的第 i i i 个人进了 a i a_i ai​ 个球,犯规 ...

  7. 洛谷刷题C语言:远古档案馆(Ancient Archive)、VOLIM、SAHOVNICA、Tuna、KRIŽALJKA

    记录洛谷刷题C语言qaq,都是些不优雅的代码 远古档案馆(Ancient Archive) 题目背景 为了揭开月光能量背后的秘密,你来到了地下的远古档案馆. 远古一族的秘密与遗忘的知识悉数贮藏于这片被 ...

  8. 洛谷刷题C语言:闰年判断、Apples、洛谷团队系统、肥胖问题、三位数排序

    记录洛谷刷题QAQ 一.[深基3.例3]闰年判断 题目描述 输入一个年份,判断这一年是否是闰年,如果是输出 111,否则输出 000. 输入格式 输入一个正整数 nnn,表示年份. 输出格式 输出一行 ...

  9. 洛谷刷题C语言:数字反转、再分肥皂水、三角形面积、Apples Prologue/苹果和虫子、数的性质

    记录洛谷刷题QAQ,一些不大优雅的代码 一.[深基2.例7]数字反转 题目描述 输入一个不小于 100100100 且小于 100010001000,同时包括小数点后一位的一个浮点数,例如 123.4 ...

最新文章

  1. Java实现二维码QRCode的编码和解码
  2. JavaScript框架
  3. 抗击海冰 地理信息系统来帮忙
  4. 在Java SE中使用Hibernate Bean Validator
  5. mybatis 学习之多数据源整合
  6. 基本的Material Design布局结构
  7. MDaemon12.X特殊注意事项和新功能
  8. 1.PHP与Web页面的交互
  9. 对象删除某个属性_JS对象基本用法
  10. python的字符串类型本质上是一种字符序列_20170402Python变量类型 知识点梳理
  11. 鸿蒙系统激活炼妖壶设备管理员实现应用双开(微信,QQ三开)以及常见问题解决
  12. 邮箱传大文件怎样快_5款好用的企业邮箱推荐
  13. 奋斗(2)第16集剧情介绍
  14. 一维信号卷积与图像卷积的区别
  15. 自然语言处理自学笔记-02 Word2vec——基于神经网络学习单词表示
  16. 如何清除木马--104种木马手工清除方法
  17. 5、TORCH.RANDOM
  18. 使用R语言进行机器学习的原因
  19. 【ParaView教程】2.11 时间
  20. openssl漏洞怎么处理_Windows暴露严重安全漏洞CVE-2020-0601,影响关键加密功能

热门文章

  1. 专业课课本复习(数电,通原,数信,信号与系统,数据结构)
  2. 职业规划之选择比努力更重要 职业生涯发展理论
  3. ClickHouse技术分享第二弹(英文讲义)
  4. 和李兄之《定风波· 冬峦轻寒桂落香》一首
  5. android曲面屏点击事件无响应,都说曲面屏中看不中用,主要原因有四点,第三点是关键!...
  6. 大阪第14天——韩寒同学语录
  7. mate40pro会搭载鸿蒙,华为 Mate40Pro 4G 版本入网,出厂搭载鸿蒙系统
  8. python 中range(10)什么意思_range什么意思python编程【面试题详解】
  9. 【原创】赋值法写基础解系中解向量
  10. Python变量赋值方法