摘要: 问题描述有n个格子,从左到右放成一排,编号为1-n。共有m次操作,有3种操作类型:1.修改一个格子的权值,2.求连续一段格子权值和,3.求连续一段格子的最大值。对于每个2、3操作输出你所求出的结果。输入格式第一行2个整数n,m。接下来一行n个整数表示n个格子的初始权值。接下来m行,每行3个整数p,x,y,p表示操作类型,p=1时表示修改格子x的权值为y,p=2时表示求区间[x,y]内格子权值和,p=3时表示求区间[x,y]内格子最大的权值。输出格式有若干行,行数等于p=2或3的操作总数。每行1个整数,对应了每个p=2或3操作的结果。样例输入4 31 2 3 42 1 31 4 33 1 4样例 阅读全文
posted @ 2014-03-20 21:00 galaxy77 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。输入格式 输入一行,包含一个正整数n。输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行。样例输入52样例输出899998989989998899数据规模和约定1#include#include#includeusing namespace std;int n;int a[10];void dfs(int step){ if(step==3) { int ans; ans=(a[0]... 阅读全文
posted @ 2014-03-20 13:16 galaxy77 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1#include#include#includeusing namespace std;char s[1000002];int d[100];int get(char x){ if(x>='0'&&x='a'&&x='A'&&x=0; i--) { sum+=get(s[i])*f; f*=16; } int flag=0; if(sum) { pri... 阅读全文
posted @ 2014-03-20 12:46 galaxy77 阅读(401) 评论(0) 推荐(0) 编辑