1042 数字0-9的数量 1050 循环数组最大子段和 1062 序列中最大的数 1067 Bash游戏 V2 1092 回文字符串
两个数a,b(1 <= a <= b <= 10^18)
输出共10行,分别是0-9出现的次数
10 19
1
11
1
1
1
1
1
1
1
1
这道题和有一题统计数字,差不多的,只不过这里统计所有,0的细节稍微特殊考虑一下。
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std; typedef long long LL; LL st,ed,ans[]={}; LL make(LL num,int now)
{
LL res=,tail=,mi=;
if (num<&&now==) return ;
while (num!=)
{
if (now==&&num<) break;
int x=num%;
num/=;
res+=(num-(now==))*mi;
if (x>now) res+=mi;
if (x==now) res+=tail+;
tail=(LL)x*mi+tail,mi*=;
}
return res;
}
int main()
{
scanf("%lld%lld",&st,&ed);
for (int i=;i<=;i++)
{
ans[i]=make(ed,i)-make(st-,i);
printf("%lld\n",ans[i]);
}
}
第1行:整数序列的长度N(2 <= N <= 50000)
第2 - N+1行:N个整数 (-10^9 <= S[i] <= 10^9)
输出循环数组的最大子段和。
6
-2
11
-4
13
-5
-2
20
直接爆力+剪枝就过了,普通最大字段和不行,不过可以从前面的非0出发,因为有长度限制。
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std; typedef long long LL;
const int NN=; int n;
int a[NN*]; int main()
{
scanf("%d",&n);
for (int i=;i<=n;i++)
{
scanf("%d",&a[i]);
a[i+n]=a[i];
}
LL ans=,x;
for (int i=;i<=n;i++)
{
x=;
for (int j=i;j<i+n;j++)
{
if (x+a[j]<) break;
else x+=a[j];
ans=max(x,ans);
}
}
printf("%lld\n",ans);
}
第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10)
第2 - T + 1行:T个数,表示需要计算的n。(1 <= n <= 10^5)
共T行,每行1个最大值。
2
5
10
3
4
预处理+输出
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<cstring>
using namespace std; typedef long long LL;
const int NN=; LL a[NN],ans[NN]; int main()
{
a[]=ans[]=;
a[]=ans[]=;
for (int i=;i<NN;i++)
{
if (i%==) a[i]=a[i/];
else a[i]=a[i/]+a[i/+];
ans[i]=max(ans[i-],a[i]);
}
int T,x;
scanf("%d",&T);
while (T--)
{
scanf("%d",&x);
printf("%lld\n",ans[x]);
}
}


第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)
第2 - T + 1行:每行1个数N。(1 <= N <= 10^9)
共T行,如果A获胜输出A,如果B获胜输出B。
3
2
3
4
B
A
A
发现一个循环的规律吧,然后%一下,输出就可以了
#include<cstdio>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std; const int ans[]={,,,,,,,}; int main()
{
int T,x;
scanf("%d",&T);
while (T--)
{
scanf("%d",&x);
x=x%;
if (x==) x=;
printf("%c\n",ans[x]+'A');
}
}


输入一个字符串Str,Str的长度 <= 1000。
输出最少添加多少个字符可以使之变为回文字串。
abbc
2
水题,正和反求一次lcs就差不多了。
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<iostream>
using namespace std; const int NN=;
char a[NN],b[NN];
int dp[NN][NN];
int main()
{
char temp;
int n,i,j;
scanf("%s",a);
n=strlen(a);
i=;j=n-;
while(i<n) b[i++]=a[j--];
for(i=;i<=n;i++)
for(j=;j<=n;j++)
if(a[i-]==b[j-]) dp[i][j]=max(dp[i-][j-]+,max(dp[i-][j],dp[i][j-]));
else dp[i][j]=max(dp[i-][j-],max(dp[i-][j],dp[i][j-]));
int ans=n-dp[n][n];
printf("%d\n",ans);
}
1042 数字0-9的数量 1050 循环数组最大子段和 1062 序列中最大的数 1067 Bash游戏 V2 1092 回文字符串的更多相关文章
- 51nod 1050 循环数组最大子段和【环形DP/最大子段和/正难则反】
1050 循环数组最大子段和 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 N个整数组成的循环序列a[1],a[2],a[3],…,a[n],求该 ...
- 51nod 1050 循环数组最大子段和
题目链接:51nod 1050 循环数组最大子段和 #include<stdio.h> #include<algorithm> using namespace std; ; l ...
- 51nod 1050 循环数组最大子段和【动态规划】
N个整数组成的循环序列a[1],a[2],a[3],-,a[n],求该序列如a[i]+a[i+1]+-+a[j]的连续的子段和的最大值(循环序列是指n个数围成一个圈,因此需要考虑a[n-1],a[n] ...
- 51Nod 1050 循环数组最大子段和 | DP
Input示例 6 -2 11 -4 13 -5 -2 Output示例 20 分析: 有两种可能,第一种为正常从[1 - n]序列中的最大子字段和:第二种为数组的total_sum - ([1-n] ...
- 51nod 1050 循环数组最大子段和 (dp)
http://www.51nod.com/onlineJudge/questionCode.html#problemId=1050¬iceId=13385 参考:http://blog. ...
- 51nod 1050 循环数组最大子段和 单调队列优化DP
题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1050 这个呢,这个题之前 求一遍最大值 然后求一遍最小值 ...
- 51nod 循环数组最大子段和(动态规划)
循环数组最大子段和 输入 第1行:整数序列的长度N(2 <= N <= 50000) 第2 - N+1行:N个整数 (-10^9 <= S[i] <= 10^9) 输出 输 ...
- [51NOD1959]循环数组最大子段和(dp,思路)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1050 这道题的最大子段和有两种可能,一种是常规的子段和,另一种 ...
- 51nod 循环数组最大子段和
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1050 对于普通的数组,只要求一次最大子段和即可.但是这题是可以循环的,所 ...
随机推荐
- Linux使用远程X Server显示图形
背景 通常我们不希望在服务器上安装图形界面,但有时候有些程序需要图形界面,比如安装oracle的时候.此时,可以配置让Linux使用远程的X Server进行图形界面显示. 首先要明确的是Linux ...
- Tornado-数据库(torndb包)
1.torndb数据库简介 在Tornado3.0版本以前提供tornado.database模块用来操作MySQL数据库,而从3.0版本开始,此模块就被独立出来,作为torndb包单独提供. ...
- 工具类:关于解决数据库中的日期格式,经过response.getWriter().write(json)打到前台日期格式混乱的问题的总结
经过response.getWriter().write(json)打到前台日期格式混乱的问题的总结 import java.text.SimpleDateFormat;import net.sf.j ...
- 线上Java程序导致服务器CPU占用率过高的问题排除过程
博文转至:http://www.jianshu.com/p/3667157d63bb,博文更好效果看原版,转本博文的目的就算是个书签吧,需要时候可以定位原文学习 1.故障现象 客服同事反馈平台系统运行 ...
- java性能真的差吗
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt275 我见过java运行在手机上,包括很廉价的山寨手机,但是却暂时没发现.n ...
- RMI和socket详解
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp58 一般来说,基于CS(client-server)软件架构的开发技 ...
- jQuery的less和scss之less的基本介绍(一)
简单的整理了一下less的基本用法,希望对大家有所帮助ㅎㅎ 一.less基础语法 1.声明变量:@变量名:变量值 使用变量:@变量名 例如 @color : #ff0000; @length : 10 ...
- 软件工程(GZSD2015)第二次作业成绩
作业评分表 姓名 提交 语言 界面 PSP(3) CODE(4) 代码规范(2) 改进(1) 基本得分 提交时间 原始总得分 相对得分 最终得分 涂江凤 20150407 C CLI 3 4 2 1 ...
- Beta版本冲刺计划安排
1.介绍小组新加入的成员,Ta担任的角色 王婧:web界面以及前端和后台的交互 柯怡芳:PM以及文档 陈艺菡:修复bug以及文档 钱惠:web界面以及前端和后台的交互 林凯:测试人员 吴伟君(新成员) ...
- Markdown例
一个例子: 例子开始 1. 本章学习总结 今天主要学习了三个知识点 封装 继承 多态 2. 书面作业 Q1. java HelloWorld命令中,HelloWorld这个参数是什么含义? 今天学了一 ...