# 111 學年度商業類學生技藝競賽模擬題 題目出處:[點擊](https://sci.me.ntnu.edu.tw/PortalFile/ContestData/9637/8d283925-adc6-4fa2-875e-19e92deed640.pdf) # pA1. 內積 ```python= l1=[int(i) for i in input().split()] l2=[int(i) for i in input().split()] print(sum([l1[i]*l2[i] for i in range(len(l1))])) ``` # pA2. 餘數 ```python= x=int(input()) y=int(input()) x,y=min(x,y),max(x,y) for i in range(x+1,y): if i%5==2 or i%5==3: print(i) ``` # pB1. 好朋友滿天下 ```python= d={} for _ in range(int(input())): l=input().split() node=l[0] if node not in d: d[node]=1 else: d[node]+=1 d1=sorted(d) for i in d1: print(i,d[i]) ``` # pB2. 四邊形 ```python= for _ in range(int(input())): num=[int(i) for i in input().split()] num.sort() d=set() for i in num: d.add(i) if len(d)==1: print('square') elif len(d)==2: print('rectangle') elif sum(num[0:3])>=num[3]: print('quadrangle') else: print('banana') ``` DOMjudge 內部測資有誤 # pB3. 平行四邊形 ```python= while True: try: l=[float(i) for i in input().split()] except: break flag=False for i in range(0,6,2): for j in range(i+2,8,2): if l[i]==l[j] and l[i+1]==l[j+1]: ans_x=sum([l[i]for i in range(0,8,2)])-l[i]*3 ans_y=sum([l[i]for i in range(1,8,2)])-l[i+1]*3 flag=True break if flag: break print('%.3f %.3f' %(ans_x,ans_y)) ``` # pC1. 質數 ```python= while True: n=int(input()) if not n: break ans=0 for i in range(2, (n//2)+1): for j in range(2, int(i**0.5)+1): if i % j == 0: break else: i=n-i for x in range(2,int(i**0.5)+1): if i%x==0: break else: ans+=1 print(ans) ``` # pC2. 數字次數 ```python= for _ in range(int(input())): num=[0 for i in range(10)] n=int(input()) for i in range(1,n+1): temp=list(str(i)) for k in temp: num[int(k)]+=1 print(*num) ``` # pC3. 加法進位 ```python= while True: a,b=input().split() if a==b=='0': break a=a[::-1] b=b[::-1] if len(a)!=len(b): while len(a)>len(b): b+='0' while len(b)>len(a): a+='0' ans=0 add=0 for i in range(len(a)): temp=int(a[i])+int(b[i])+add if temp>9: ans+=1 add=1 else: add=0 if not ans: print('No carry operation.') elif ans==1: print('1 carry operation.') else: print('%d carry operations.' %ans) ``` # pD1. 字串 ```python= dic = [0]*26 a = input() b = input() for i in set(a): dic[ord(i)-97]+=1 for i in set(b): dic[ord(i)-97]+=1 M=max(dic) for i in range(26): if dic[i] == M: print(chr(i+97),end='') ``` # pE1. 二元樹 ```python= ``` # pE2. 迷宮 ```python= for _ in range(int(input())): n=int(input()) m=int(input()) arr=[] for _ in range(n): arr.append([int(i) for i in input().split()]) for i in range(n): arr[i].append(10) arr.append([10 for i in range(m+1)]) dp=[[0]*(m+1) for _ in range(n+1)] for i in range(n): for j in range(m): if i==j==0: dp[i][j]=arr[i][j] else: dp[i][j]=min(dp[i-1][j],dp[i+1][j],dp[i][j-1],dp[i][j+1])+arr[i][j] print(dp[n-1][m-1]) ``` DOMjudge 內部測資有誤 # pM. 矩陣 ```python= l = list(input()) arr = [] q = 0 temp = [] num='' for i in l: if q: if i.isdigit(): num+=i elif i == ']': temp.append(int(num)) num='' arr.append(temp) temp = [] q = 0 elif i == ',': temp.append(int(num)) num='' else: if i == '[': q = 1 n=len(arr) dp=[[0]*(n) for _ in range(n)] for i in range(n): for j in range(n): dp[j][n-i-1]=arr[i][j] ans=[] ans.append('[') for i in dp: ans.append('[') for j in i: ans.append(str(j)) ans.append(',') ans.pop() ans+=']' ans+=',' ans.pop() ans+=']' print(''.join(ans)) ``` # pT. 路徑 ```python= def DFS(n,q): if n not in d: print('->'.join(q)) else: for i in d[n]: q.append(i) DFS(i,q) q.pop() l=input().split(',') l_head=1 head=0 d={} while l_head<len(l): node=l[head];head+=1 if node=='null': l_head+=1 continue d[node]=[] if l[l_head]!='null': d[node].append(l[l_head]) l_head+=1 if l[l_head]!='null': d[node].append(l[l_head]) l_head+=1 q=[l[0]] DFS(l[0],q) ``` DOMjudge 內部測資有誤(no-output)