无锡网站建设咨询,做宣传网站需要多少钱,wordpress 加视频,能打开那种网站的手机浏览器数组三角形 题目描述 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径#xff0c;把路径上面的数加起来可以得到一个和#xff0c;你的任务就是找到最大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边的那个… 数组三角形 题目描述 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径把路径上面的数加起来可以得到一个和你的任务就是找到最大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边的那个数。此外向左下走的次数与向右下走的次数相差不能超过 1。 输入描述 输入的第一行包含一个整数 (1≤N≤100)N (1≤N≤100)表示三角形的行数。 下面的 N 行给出数字三角形。数字三角形上的数都是 0 至 100 之间的整数。 输出描述 输出一个整数表示答案。 输入输出样例 示例 输入 5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5输出 27运行限制 最大运行时间1s最大运行内存: 256M题解 1.这个题目最开始想的就是dfs算法但是超时了后来就想到了多态规划的题目。 2.但是这里有一个要注意的点就是向左下走的次数与向右下走的次数相差不能超过 1通过纸上模拟可以得出是偶数行的时候有两个值可能是最大值是奇数行的时候有一个值是最大值。不管是偶数行还是奇数行最大值都是在行中间的位置。
#includeiostream
#includemath.h
using namespace std;
int n,m[109][109],t[109][109];
int main() {cinn;for(int i1; in; i) {for(int j1; ji; j) {cinm[i][j];}}t[1][1]m[1][1];for(int i2;in;i){for(int j1;ji;j){t[i][j]max(t[i-1][j],t[i-1][j-1])m[i][j];}}if(n%20){//偶数行coutmax(t[n][(n1)/2],t[n][(n2)/2]);}else{//奇数行coutt[n][(n1)/2]; }return 0;
} 排序 题目描述 本题为填空题只需要算出结果后在代码中使用输出语句将所填结果输出即可。 小蓝最近学习了一些排序算法其中冒泡排序让他印象深刻。 在冒泡排序中每次只能交换相邻的两个元素。 小蓝发现如果对一个字符串中的字符排序只允许交换相邻的两个字符 则在所有可能的排序方案中冒泡排序的总交换次数是最少的。 例如对于字符串 lan 排序只需要 1 次交换。对于字符串 qiao 排序总共需要 4 次交换。 小蓝找到了很多字符串试图排序他恰巧碰到一个字符串需要 100100 次交 换可是他忘了吧这个字符串记下来现在找不到了。 请帮助小蓝找一个只包含小写英文字母且没有字母重复出现的字符串对 该串的字符排序正好需要 100100 次交换。如果可能找到多个请告诉小蓝最短的那个。如果最短的仍然有多个请告诉小蓝字典序最小的那个。 运行限制 最大运行时间1s最大运行内存: 128M题解 1.冒泡排序的n个数最多的排序次数是n*(n-1)/2次通过计算n最小值为15,15*14105 2.105-1005只需把第6个字母往后移到第1位即可即jonmlkihgfedcba。
#includeiostream
#includemath.h
#includestring.h
using namespace std;
int main() {coutjonmlkihgfedcba;return 0;
}
跑步锻炼 题目描述 本题为填空题只需要算出结果后在代码中使用输出语句将所填结果输出即可。 小蓝每天都锻炼身体。 正常情况下小蓝每天跑 11 千米。如果某天是周一或者月初11 日为了激励自己小蓝要跑 22 千米。如果同时是周一或月初小蓝也是跑 22 千米。 小蓝跑步已经坚持了很长时间从 20002000 年 11 月 11 日周六含到 20202020 年 1010 月 11 日周四含。请问这段时间小蓝总共跑步多少千米 运行限制 最大运行时间1s最大运行内存: 128M代码
#includeiostream
#includemath.h
#includestring.h
using namespace std;
int mouth[13]{0,31,28,31,30,31,30,31,31,30,31,30,31};
int main() {int day5,sign0,sum0;for(int i2000;i2020;i){//闰年的处理 if((i%40i%100!0)||(i%4000)){mouth[2]29;}else{mouth[2]28;}int t i!2020? 12: 10;for(int j1;jt;j){for(int k1;kmouth[j];k){if(i2020j10k2){sign1;break;}day;sum1;if(k1){//判断是不是月初sum1;}if(day8){//判断是不是星期一day1;if(k!1){sum1;}}}if(sign1)break;} if(sign1)break;} coutsum;return 0;
}