文章目录
P1000 超级玛丽游戏
题目描述
超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。
********
************
####....#.
#..###.....##....
###.......###### ### ###
........... #...# #...#
##*####### #.#.# #.#.#
####*******###### #.#.# #.#.#
...#***.****.*###.... #...# #...#
....**********##..... ### ###
....**** *****....
#### ####
###### ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
########################################## #----------#
#.....#......##.....#......##.....#......# #----------#
########################################## #----------#
#.#..#....#..##.#..#....#..##.#..#....#..# #----------#
########################################## ############
输入格式
无
输出格式
如描述
提交答案
/*
Name: P1000 超级玛丽游戏
Copyright: 洛谷
Author: prayer
Date: 05/09/22 10:57
Description:
*/
#include <cstdio>
using namespace std;
int main() {
printf(
" ********\n"
" ************\n"
" ####....#.\n"
" #..###.....##....\n"
" ###.......###### ### ###\n"
" ........... #...# #...#\n"
" ##*####### #.#.# #.#.#\n"
" ####*******###### #.#.# #.#.#\n"
" ...#***.****.*###.... #...# #...#\n"
" ....**********##..... ### ###\n"
" ....**** *****....\n"
" #### ####\n"
" ###### ######\n"
"##############################################################\n"
"#...#......#.##...#......#.##...#......#.##------------------#\n"
"###########################################------------------#\n"
"#..#....#....##..#....#....##..#....#....#####################\n"
"########################################## #----------#\n"
"#.....#......##.....#......##.....#......# #----------#\n"
"########################################## #----------#\n"
"#.#..#....#..##.#..#....#..##.#..#....#..# #----------#\n"
"########################################## ############"
);
return 0;
}
P1001 A+B Problem
题目描述
输入两个整数 a , b a, b a,b,输出它们的和( ∣ a ∣ , ∣ b ∣ ≤ 10 9 |a|,|b| \le {10}^9 ∣a∣,∣b∣≤109)。
注意
- Pascal 使用
integer
会爆掉哦! - 有负数哦!
- C/C++ 的 main 函数必须是
int
类型,而且 C 最后要return 0
。这不仅对洛谷其他题目有效,而且也是 NOIP/CSP/NOI 比赛的要求!
好吧,同志们,我们就从这一题开始,向着大牛的路进发。
任何一个伟大的思想,都有一个微不足道的开始。
输入格式
两个以空格分开的整数。
输出格式
一个整数。
样例 #1
样例输入 #1
20 30
样例输出 #1
50
本题各种语言的程序范例:
C
#include <stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n", a+b);
return 0;
}
C++
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int a,b;
cin >> a >> b;
cout << a+b << endl;
return 0;
}
Pascal
var a, b: longint;
begin
readln(a,b);
writeln(a+b);
end.
Python2
s = raw_input().split()
print int(s[0]) + int(s[1])
Python3
s = input().split()
print(int(s[0]) + int(s[1]))
Java
import java.io.*;
import java.util.*;
public class Main {
public static void main(String args[]) throws Exception {
Scanner cin=new Scanner(System.in);
int a = cin.nextInt(), b = cin.nextInt();
System.out.println(a+b);
}
}
JavaScript (Node.js)
const fs = require('fs')
const data = fs.readFileSync('/dev/stdin')
const result = data.toString('ascii').trim().split(' ').map(x => parseInt(x)).reduce((a, b) => a + b, 0)
console.log(result)
process.exit() // 请注意必须在出口点处加入此行
Ruby
a, b = gets.split.map(&:to_i)
print a+b
PHP
<?php
$input = trim(file_get_contents("php://stdin"));
list($a, $b) = explode(' ', $input);
echo $a + $b;
Rust
use std::io;
fn main(){
let mut input=String::new();
io::stdin().read_line(&mut input).unwrap();
let mut s=input.trim().split(' ');
let a:i32=s.next().unwrap()
.parse().unwrap();
let b:i32=s.next().unwrap()
.parse().unwrap();
println!("{}",a+b);
}
Go
package main
import "fmt"
func main() {
var a, b int
fmt.Scanf("%d%d", &a, &b)
fmt.Println(a+b)
}
C# Mono
using System;
public class APlusB{
private static void Main(){
string[] input = Console.ReadLine().Split(' ');
Console.WriteLine(int.Parse(input[0]) + int.Parse(input[1]));
}
}
Visual Basic Mono
Imports System
Module APlusB
Sub Main()
Dim ins As String() = Console.ReadLine().Split(New Char(){" "c})
Console.WriteLine(Int(ins(0))+Int(ins(1)))
End Sub
End Module
Kotlin
fun main(args: Array<String>) {
val (a, b) = readLine()!!.split(' ').map(String::toInt)
println(a + b)
}
Haskell
main = do
[a, b] <- (map read . words) `fmap` getLine
print (a+b)
Scala
object Main extends App {
println(scala.io.StdIn.readLine().split(" ").map(_.toInt).sum)
}
Perl
my $in = <STDIN>;
chomp $in;
$in = [split /[\s,]+/, $in];
my $c = $in->[0] + $in->[1];
print "$c\n";
提交答案
/*
Name: P1001 A+B Problem
Copyright: 洛谷
Author: prayer
Date: 05/09/22 11:15
Description:
*/
#include <cstdio>
#include <iostream>
using namespace std;
int main() {
int a,b;
cin >> a >> b;
cout << a+b;
return 0;
}
P1035 [NOIP2002 普及组] 级数求和
题目描述
已知: S n = 1 + 1 2 + 1 3 + … + 1 n S_n= 1+\frac{1}{2}+\frac{1}{3}+…+\frac{1}{n} Sn=1+21+31+…+n1。显然对于任意一个整数 k k k,当 n n n 足够大的时候, S n > k S_n>k Sn>k。
现给出一个整数 k k k,要求计算出一个最小的 n n n,使得 S n > k S_n>k Sn>k。
输入格式
一个正整数 k k k。
输出格式
一个正整数 n n n。
样例 #1
样例输入 #1
1
样例输出 #1
2
提示
【数据范围】
对于 100 % 100\% 100% 的数据, 1 ≤ k ≤ 15 1\le k \le 15 1≤k≤15。
【题目来源】
NOIP 2002 普及组第一题
提交答案
/*
Name: P1035 [NOIP2002 普及组] 级数求和
Copyright: 洛谷
Author: prayer
Date: 05/09/22 11:46
Description:
*/
#include <bits/stdc++.h>
using namespace std;
int main() {
int k;
cin >> k;
int n = 1;
double s = 0;
while(s <= k) {
s += 1.0/n;
n++;
}
cout << n-1 << endl;
return 0;
}
P1046 [NOIP2005 普及组] 陶陶摘苹果
题目描述
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 10 10 个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个 30 30 30 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。
现在已知 10 10 10 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。
输入格式
输入包括两行数据。第一行包含 10 10 10 个 100 100 100 到 200 200 200 之间(包括 100 100 100 和 200 200 200 )的整数(以厘米为单位)分别表示 10 10 10 个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个 100 100 100 到 120 120 120 之间(包含 100 100 100 和 120 120 120 )的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。
输出格式
输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。
样例 #1
样例输入 #1
100 200 150 140 129 134 167 198 200 111
110
样例输出 #1
5
提示
【题目来源】
NOIP 2005 普及组第一题
提交答案
/*
Name: P1046 [NOIP2005 普及组] 陶陶摘苹果
Copyright: 洛谷
Author: prayer
Date: 05/09/22 14:30
Description:
*/
#include <bits/stdc++.h>
using namespace std;
int main() {
int h[10],max;
for (int i=0;i<10;i++) {
cin >> h[i];
}
cin >> max;
int num = 0;
for(int i=0;i<10;i++) {
if(h[i] <= max+30) num++;
}
cout << num << endl;
return 0;
}
P1047 [NOIP2005 普及组] 校门外的树
题目描述
某校大门外长度为 l l l 的马路上有一排树,每两棵相邻的树之间的间隔都是 1 1 1 米。我们可以把马路看成一个数轴,马路的一端在数轴 0 0 0 的位置,另一端在 l l l 的位置;数轴上的每个整数点,即 0 , 1 , 2 , … , l 0,1,2,\dots,l 0,1,2,…,l,都种有一棵树。
由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。
输入格式
第一行有两个整数,分别表示马路的长度 l l l 和区域的数目 m m m。
接下来 m m m 行,每行两个整数 u , v u, v u,v,表示一个区域的起始点和终止点的坐标。
输出格式
输出一行一个整数,表示将这些树都移走后,马路上剩余的树木数量。
样例 #1
样例输入 #1
500 3
150 300
100 200
470 471
样例输出 #1
298
提示
【数据范围】
- 对于 20 % 20\% 20% 的数据,保证区域之间没有重合的部分。
- 对于 100 % 100\% 100% 的数据,保证 1 ≤ l ≤ 1 0 4 1 \leq l \leq 10^4 1≤l≤104, 1 ≤ m ≤ 100 1 \leq m \leq 100 1≤m≤100, 0 ≤ u ≤ v ≤ l 0 \leq u \leq v \leq l 0≤u≤v≤l。
【题目来源】
NOIP 2005 普及组第二题
提交答案
/*
Name: P1047 [NOIP2005 普及组] 校门外的树
Copyright: 洛谷
Author: prayer
Date: 05/09/22 15:11
Description:
*/
#include <bits/stdc++.h>
using namespace std;
int main() {
int l,m,min,max;
int a[10005];
cin >> l >> m;
for(int i=0;i<=l;i++) {
a[i] = 1;
}//输入马路长度上,都标记种上树
for(int i=0;i<m;i++) {
cin >> min >> max;
for(int j=min;j<=max;j++){
a[j] = 0;//将输入的区间范围内的数砍掉,重复的区间可以重复赋值
}
}
int ans = 0;
for(int i=0;i<=l;i++) {
if(a[i] == 1) ans++;//循环遍历还存在有多少树
}
cout << ans << endl;
return 0;
}