编程题都蛮简单的,选择题啥的不咋会了,除了第三题有点坑(可能是我思路跟答案不一样)1.题目大概含义:初始数值a=1,每一次a<-a*k%m,一直循环到重复请问有多少个值?set+while暴力打完就行2.给定一个数组b和数值d,你需要构造一个数组a。并且有一个运算如下:对于你构造的数组a,如果ai>ai-1+d(想不起来是不是大于了)那么ai舍去。你构造出的数组必须字典序最小且长度最短。答案:遍历数组b,假如对于关系运算bi>bi-1+d满足,先塞1再塞bi3.有n*m个数组(n*m<=2e3),有B,S两种果酱,对于每一行从左边丢掉K个果酱,最后B,S果酱数量要求相等,你需要丢掉最少的果酱为多少。答案:先建数组pre[n][m];假如cntb>cnts,那么pre[i][j]=pre[i][j-1]+flag;假如a[i][j]为B,flag=1,不然为-1转换题意为:每一行取或者不取一个pre数组,代价为j,求到dp[sum]最小值为多少,sum=cntb-cnts;背包dp,状态如下:dp[i][z]对于达到i行,达到z最少代价是多少。我被坑在dp的列一定要开到n*m+1这样,它好像能从右边转化过来。硬是写了50分钟的编程题。(不确定是不是理解错了)