牛客小白月赛5(2018-07-22)

链接:https://www.nowcoder.com/acm/contest/135/I
来源:牛客网
                                                                                     I   区间 (interval)

时间限制:C/C++ 2秒,其他语言4秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

    Apojacsleam喜欢数组。

    他现在有一个n个元素的数组a,而他要对a[L]-a[R]进行M次操作:

        操作一:将a[L]-a[R]内的元素都加上P

        操作二:将a[L]-a[R]内的元素都减去P

    最后询问a[l]-a[r]内的元素之和?

    请认真看题干及输入描述。

输入描述:

输入共M+3行:

第一行两个数,n,M,意义如“题目描述”

第二行n个数,描述数组。

第3-M+2行,共M行,每行四个数,q,L,R,P,若q为1则表示执行操作2,否则为执行操作1

第4行,两个正整数l,r

输出描述:

一个正整数,为a[l]-a[r]内的元素之和

示例1

输入

复制

10 5
1 2 3 4 5 6 7 8 9 10
1 1 5 5
1 2 3 6
0 2 5 5 
0 2 5 8
1 4 9 6
2 7

输出

复制

23

说明

 

写个博客记录几种好的代码

1.0数据较小得情况下,而且是单样例得话直接暴力

                                                                                                 I-时间 time

链接:https://www.nowcoder.com/acm/contest/135/J
来源:牛客网
 

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

         Apojacsleam是一个喜欢特殊时刻的人。

        他定义了一个时刻,若电子表显示ab:ba(24小时制),则该时刻为“回文时刻”(可以有前导零)。例如00:00就是回文时刻。

        给定一个时刻,求此时刻的上一个和下一个回文时刻。

J题附加:00:00就是24:00,没有24:00这一时刻

J题附加:输入可能有前导0,输出不含前导0,例如10:1的意思是10:01,而10:10的输出为10:10 

输入描述:

两个正整数,用“:”隔开,表示小时和分钟,保证输入时间合法。

输出描述:

两行,两个时刻(不含前导0),用“:”隔开,表示上一个时刻和下一个时刻

示例1

输入

复制

09:33

输出

复制

5:50
10:1

示例2

输入

复制

23:32

输出

复制

22:22
0:0

思路:

代码:

#include<iostream>
using namespace std;
int main()
{
	int a,b,c1,c2,s1,s2;
	scanf("%d:%d",&a,&b);
	if((a%10*10+a/10)==b){
		if(a==0&&b==0){
			c1=23,s1=59;
			c2=0,s2=1;
		}
		else{
			c1=a,s1=b-1;
			c2=a,s2=b+1;
		}
    }
    else{
        c1=a,s1=b;
        c2=a,s2=b;   	
	}
	while((c1%10*10+c1/10)!=s1){
		if(s1==0){
			c1--,s1=59;
		}
		else if(s1!=0) s1--;
	}
	cout<<c1<<":"<<s1<<endl;
	while((c2%10*10+c2/10)!=s2){
	    if(c2==23&&s2==59){
	    	c2=0,s2=0;
		}
		else if(c2!=23&&s2==59){
			c2++,s2=0;
		}
		else{
			s2++; 
		}
	}
	cout<<c2<<":"<<s2; 
	return 0;
}
	 

猜你喜欢

转载自blog.csdn.net/dadaguai001/article/details/81163741