今天笔试比较照顾人,甚至于第三题还提示不建议用python,当然我用不用都是一样的,暴力2.25
第一题:模拟
注意点就是柱状图的高度是以最高的柱为准,先要求出mx
public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt();in.nextLine(); int[] arr = new int[n]; int mx = 0; for(int i=0;i<n;i++){ arr[i] = in.nextInt(); mx = Math.max(mx,arr[i]); } char[][] ch = new char[mx][n]; for(int i=0;i<n;i++){ int a = arr[i]; int j=mx-1; for(;j>mx-1-a;j--){ ch[j][i] = '+'; } for(;j>=0;j--){ ch[j][i] = '-'; } } for(int i=0;i<mx;i++){ for(int j=0;j<n;j++){ System.out.print(ch[i][j]); } System.out.println(); } } }
第二题:模拟
就是简单的通过标志位表示当前的字母,
如果当前字母剩余长度小于等于0,那么就切换
这里会出现小于0是因为如果当前长度为0,而p[i]为-1,那么省去判定cur的值,直接cur-=1,所以会出现长度小于0
a,b,n = (int(i) for i in input().split(' ')) p = [i for i in input().split(' ')] # print(p) res = '' sign = True cur = a for i in range(n): res+= 'A' if sign else 'B' cur-=1 if p[i]=='1': if sign: a+=1 else: b+=1 cur+=1 elif p[i]=='-1': if sign: a=max(a-1,1) else: b=max(b-1,1) cur-=1 if cur<=0: # 出现负数直接切换 if sign: cur = b sign = False else: cur = a sign = True print(res)
第三题:模拟
应该是数论相关的优化,不是正统计算机,没学过,暴力拿点分结束了
q = int(input()) res = [0]*q MOD = 1000_000_007 for i in range(q): ans = 0 n,k,x = (int(i) for i in input().split(' ')) factor = 1 while n>0: cur = x%k ans += (k-cur)*factor factor*=k x//=k n-=1 res[i] = ans%MOD for i in res: print(i)
统计看看各位佬的成绩
#钉钉##钉钉笔试##暑期实习##暑期实习笔试##钉钉暑期##投票#