C3-C
C3-C 矩阵连乘
题目描述
nnn个矩阵连乘,求有多少种乘法P(n)P(n)P(n)?
输入
一个正整数nnn,表示矩阵个数,1≤n≤351≤n≤351≤n≤35。
输出
$1∼n $个矩阵连乘,分别有多少种乘法。
题目分析
将nnn个矩阵分为两部分i,n−ii,n-ii,n−i则:
P(n)=∑P(i)∗P(n−i)P(n)=\sum P(i)*P(n-i)
P(n)=∑P(i)∗P(n−i)
示例代码
123456789dp[1]=1;dp[2]=1;for (int i = 3; i <= n; i++) { for (int j = 1; j <= i; j++) { dp[i] += dp[j] * dp[i - j]; } }
C3-B
C3-B 钢管切割
题目描述
给定一段长度为nnn英寸的钢管和一个价格表,该价格表表示长度为$ i(i=1,2,\ldots,n)英寸的钢管的价格为英寸的钢管的价格为英寸的钢管的价格为p_i$。求钢管切割方案,使得总销售价格最大,注意钢管的长度必须为整英寸。
输入
第一行一个正整数 n(1≤n≤104)n(1 \le n \le 10^4)n(1≤n≤104),表示钢管的总长度。
第二行nnn个正整数 p1,p2,…,pn(1≤pi≤107)p_1,p_2,…,p_n(1≤pi≤10^7)p1,p2,…,pn(1≤pi≤107),表示钢管的价格。
输出
第一行一个正整数,表示最大总销售价格。
第二行一个正整数 kkk,表示钢管被分割成 k 段。
第三行kkk 个正整数 a1,…,aka1,…,aka1,…,ak,表示钢管的分割方式,需保证$ ∑a_i=n$
如果有多种分割方案,输出任意一种即可。
题目分析
求切割方案,即求销售价格最大的子状态。设dp[i]dp[i]dp[i]为钢管长iii时最大价格。可得状态转移方程如下:
dp[i]=max(p[i],dp[1]+p[i−1], ...
C3-A
C3-A 流水线调度1
题目描述
在某一车间有 333 条流水线,每条流水线有 mmm 个装配站,编号都为 1,2,⋯ ,m1, 2, \cdots, m1,2,⋯,m,每条流水线同样编号的装配站都执行相同的功能。拼装一个成品要按顺序经过 mmm 个装配站才能加工完成,经过第 iii 条流水线的第 jjj 个装配站要花费 pi,jp_{i,j}pi,j 的时间,且进入第一个装配站时无需移动时间,从第 iii 条流水线移动到第 jjj 条流水线要花费 ti,jt_{i,j}ti,j 的时间,请问制造一个成品最少时间是多少?
题目分析
对于第iii条流水线的第jjj个站点,他可能由333条流水线的任意一条的第j−1j-1j−1个站点得到。所以可以用dp[i][j]dp[i][j]dp[i][j]表示经过第iii条流水线的第jjj个站点要花费的最少时间,可得到状态转移方程如下:
dp[i][j]=min(dp[1][j−1]+t[1][i],dp[2][j−1]+t[2][i],dp[3][j−1]+t[3][i])+p[i][j]dp[i][j]=min(dp[1][j-1]+t[1 ...
Lab03
Lab 03
Question 01
相关代码见\soultion\Question01
Question 02
不正确,删除int something保持与父类eat方法中一样无参,重写的方法必须有相同的参数列表。
不可以,重写的方法不能使用限制等级更严格的权限修饰符。
不正确,返回类型改为Worker,返回new Worker(),重写的方法要返回相同的类型。
不正确,返回类型改为int,返回(int)my_salary重写的方法要返回相同的类型。
非静态方法可以被覆盖,属性和静态方法不能被覆盖可以被隐藏。
Question 03
区别点
this
super
引用(代表什么)
当前类对象
当前对象的父类对象
使用方式
直接引用,区分同名形参与成员
直接引用,区分同名子类成员变量或方法和父类成员变量或方法
调用构造方法(调用谁的构造方法,放在第几条语句)
调用本类对应形参的构造方法,放在第一条
调用父类对应形参的构造方法,放在第一条
查找范围(查找顺序)
先从本类查找,找不到则去父类
只能查找父类
Question 04
不能被继承,可以继承其 ...
C2-F
C2-F 2024-排序?数数!
题目描述
对于一个数组A=[a1,a2,a3,...an]A=[a_1,a_2,a_3,...a_n]A=[a1,a2,a3,...an],定义
f(A)=∑i=0norder(ai)∙aif(A)=\sum_{i=0}^{n}order(a_i)\bullet a_i
f(A)=i=0∑norder(ai)∙ai
其中
order(ai)=1+∑aj<ai 1≤j≤n1order(a_i)=1+\sum_{a_j<a_i\,1\leq j\leq n}1
order(ai)=1+aj<ai1≤j≤n∑1
给出随机数生成器
123456789int nextRand() { static unsigned int rnd_num = 0x80000001; static int mod = 1e5 + 3; rnd_num ^= rnd_num >> 10; rnd_num ^= rnd_num << 9; rnd_num ^= rnd_num & ...
C1-E
E 莫卡与一元多项式
题目描述
给定如下两个一元多项式:
∑i=0naixi=a0+a1x+a2x2+...+anxn\sum_{i=0}^n a_ix^i = a_0+a_1x+a_2x^2+...+a_nx^n
i=0∑naixi=a0+a1x+a2x2+...+anxn
∑i=0mbixi=b0+b1x+b2x2+...+bmxm\sum_{i=0}^m b_ix^i = b_0+b_1x+b_2x^2+...+b_mx^m
i=0∑mbixi=b0+b1x+b2x2+...+bmxm
定义如下的二元多项式:
f(x,y)=(∑i=0naixi)(∑i=0mbixi)f(x,y)=(\sum_{i=0}^n a_ix^i)(\sum_{i=0}^m b_ix^i)
f(x,y)=(i=0∑naixi)(i=0∑mbixi)
你需要处理q次计算,第i次计算给定两个变量值XiX_iXi 和 YiY_iYi,你需要求解 f(Xi,Yi) mod 10007f(X_i,Y_i)\bmod10007f(Xi,Yi)mod10007
题目分析
根据
...







