问题标题: 酷町堂:1061 求和 50分求救!!!🆘

0
0
已解决
刘乐宸
刘乐宸
新手天翼
新手天翼
题目描述 Description
给定两个数a,b,求a和b的和。(a,b的绝对值均小于20000000)

输入描述 Input Description
输入只有一行a和b,两个数之间用空格隔开。

输出描述 Output Description
输出a+b的值。

样例输入 Sample Input
3 2
样例输出 Sample Output
5

为啥我50分???

#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
int a, b;
void print(int ans) {
	printf("%d", ans);
}
void dfs(int &a, int &b, int ans, int tot) {
	if(tot==1) {
		print(ans);
		return;
	}
	vector<int> v;
	v.push_back(a), v.push_back(b);
	for(int i=1; i<=v.back(); i++) ans++;
	v.pop_back();
	for(int i=1; i<=v.back(); i++) ans++;
	dfs(a, b, ans, tot+1);
} 
int main() {
	scanf("%d%d", &a, &b);
	dfs(a, b, 0, 0);
	return 0;
}

 

刘乐宸在2021-08-04 14:10:22追加了内容


2
已采纳
陈曦
陈曦
资深天翼
资深天翼

队列的下表不是从0开始吗。

你是WA50、TLE50、RE50 还是 MLE50?

陈曦在2021-08-04 14:21:19追加了内容

@刘乐宸 建议你把输出的那个函数删掉,改成直接输出,没准可以减少一些时间复杂度。

5
武建豪
武建豪
中级天翼
中级天翼

醒醒各位,这道题明明可以用二叉树写啊【doge】

1
张恩泽
张恩泽
高级天翼
高级天翼

这题用二分查找会比较简单[doge]

0
0
0
武建豪
武建豪
中级天翼
中级天翼

本题各种语言的程序范例:(摘自洛谷)

C

#include <stdio.h>

int main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    p**ntf("%d\n", a+b);
    ret**n 0;
}

C++

#include <iostream>
#include <**tdio>

using name** std;

int main()
{
    int a,b;
    cin >> a >> b;
    cout << a+b << endl;
    ret**n 0;
}

Pascal

var a, b: longint;
begin
    readln(a,b);
    w**teln(a+b);
end.

Python2

s = raw_input().split()
p**nt int(s[0]) + int(s[1])

Python3

s = input().split()
p**nt(int(s[0]) + int(s[1]))

Java

import java.io.*;
import java.util.*;
public class Main {
    public static void main(St**ng args[]) th**ws Exception {
        Scanner cin=new Scanner(**.in);
        int a = cin.nextInt(), b = cin.nextInt();
        **.out.p**ntln(a+b);
    }
}

JavaSc**pt (Node.js)

const fs = require('fs')
const data = fs.readFileSync('/dev/stdin')
const result = data.toSt**ng('ascii').t**m().split(' ').map(x => parseInt(x)).reduce((a, b) => a + b, 0)
console.log(result)
p**cess.exit() // 请注意必须在出口点处加入此行

Ruby

a, b = gets.split.map(&:to_i)
p**nt a+b

PHP

<?php
$input = t**m(file_get_contents("php://stdin"));
list($a, $b) = explode(' ', $input);
echo $a + $b;

Rust

use std::io;

fn main(){
    let mut input=St**ng::new();
    io::stdin().read_line(&mut input).unwrap();
    let mut s=input.t**m().split(' ');

    let a:i32=s.next().unwrap()
               .parse().unwrap();
    let b:i32=s.next().unwrap()
               .parse().unwrap();
    p**ntln!("{}",a+b);
}

Go

package main

import "fmt"

func main() {
    var a, b int
    fmt.Scanf("%d%d", &a, &b)
    fmt.P**ntln(a+b)
}

C# Mono

using **;

public class APlusB{
    p**vate static void Main(){
        st**ng[] input = Console.ReadLine().Split(' ');
        Console.W**teLine(int.Parse(input[0]) + int.Parse(input[1]));
    }
}

Visual Basic Mono

Imports **

Module APlusB
    Sub Main()
        Dim ins As St**ng() = Console.ReadLine().Split(New Char(){" "c})
        Console.W**teLine(Int(ins(0))+Int(ins(1)))
    End Sub
End Module

Kotlin

fun main(args: Array<St**ng>) {
    val (a, b) = readLine()!!.split(' ').map(St**ng::toInt)
    p**ntln(a + b)
}

Haskell

main = do
    [a, b] <- (map read . words) `fmap` getLine
    p**nt (a+b)

Scala

object Main extends App {
    p**ntln(scala.io.StdIn.readLine().split(" ").map(_.toInt).sum)
}

Perl

my $in = <STDIN>;
chomp $in;
$in = [split /[\s,]+/, $in];
my $c = $in->[0] + $in->[1];
p**nt "$c\n";

文言

施「require('fs').readFileSync」於「「/dev/stdin」」。名之**「數據」。
施「(buf => buf.toSt**ng().t**m())」於「數據」。昔之「數據」者。今其是矣。
施「(s => s.split(' '))」於「數據」。昔之「數據」者。今其是矣。
注**。「「文言尚菜,無對象之**作,故需 JavaSc**pt 之语法」」。

夫「數據」之一。取一以施「parseInt」。名之**「甲」。
夫「數據」之二。取一以施「parseInt」。名之**「乙」。

加「甲」以「乙」。書之。
0
苏屹冉
苏屹冉
初级光能
初级光能

cin>>a>>b;

cout<<a+b;

三行代码搞定

0
0
曹博扬
曹博扬
初级天翼
初级天翼

我觉得有两种改法:

    1.循环下标从0开始

    2.dfs(a,b,1,1)

0
0
褚俊皓
褚俊皓
新手天翼
新手天翼
int a,b;
    cin>>a>>b;
    cout<<a+b;

三行代码搞定

0
汪宇航
汪宇航
新手启示者
新手启示者

直接输出a+b,因为a+b最大值不会越int

0
李奕歌
李奕歌
初级天翼
初级天翼
int a,b;
    cin>>a>>b;
    cout<<a+b;

 

0
潘艺博
潘艺博
初级天翼
初级天翼

这。。。。。。

三行代码你非要搞这么多干啥?

定义

输入

输出a+b

结束!

这难吗?

0
李沫朴
李沫朴
新手天翼
新手天翼
  • #include <iostream> #include <cstdio> using namespace std; long long a,b; int main(){ cin>>a>>b; cout<<a+b; return 0; //freopen("1291.in","r",stdin); //freopen("1291.out","w",stdout); //fclose(stdin); //fclose(stdout); }
0
陈慕嘉
陈慕嘉
初级光能
初级光能

为什么不直接输出a+b呢???

0
0
e的x次幂
e的x次幂
高级守护
高级守护

int a, b;

cin>>a>>b;

cout<<a+b;

 

3行代码不香吗,整个高精度有啥用,int就够了

|a| <= 20000000, |b| <= 20000000

绝对值不等式

|a+b|  ≤  |a|+|b| ≤ 20000000 + 20000000 =  40000000 < MAX_INT = 2^31-1

e的x次幂在2021-08-01 23:53:06追加了内容

好像是i=1 i<=v.back()错了吧?vector下标从0开始的

0
王文博
王文博
缔造者之神
缔造者之神

这道简单的题目不用dfs深搜和vector吧?貌似把事情搞复杂了。

望采纳!

0
张新杨
张新杨
高级守护
高级守护

int a,b;

cin>>a>>b;

cout<<a+b;

0
郑思予
郑思予
新手光能
新手光能

int a,b;

cin>>a>>b;

cout<<a+b;

0
0
我要回答