個(gè)人博客,歡迎你來轉(zhuǎn)轉(zhuǎn)。Uncle_drew
3月10日舉辦了協(xié)會的第二次招新賽,為了方(ceng)便(re)廣(du)大同學(xué)學(xué)習(xí),順便提醒自己要補(bǔ)題,寫一下我做題時(shí)候的思考以及會的題的思路跟大家分享一下順便互相學(xué)習(xí)!畢竟我們小白之間交流還是輕松點(diǎn)(手動滑稽<!-- more-->
我校oj:[HPUOJ](https://hpuoj.com/)
本場招新賽:[河南理工大學(xué)18級算法協(xié)會招新賽(第二場)](https://hpuoj.com/contest/15/)
### A. wzy學(xué)長溫暖的簽到題
#### 題目描述
單測試點(diǎn)時(shí)限: 1.0 秒
內(nèi)存限制: 256 MB
每位ACMer(JBer)都是從a+b開始的!
作為本場比賽的良心出題人,怎么能忘記出a+b這么經(jīng)典的題目呢?
請作為ACMer的你來嘗試解決它吧!
輸入
單組輸入
每行輸入兩個(gè)實(shí)數(shù)a,b(用空格隔開)
輸出
輸出a+b的結(jié)果(結(jié)果保留兩位小數(shù))
樣例
input
1 1
output
2.00
input
1.555 1.001
output
2.56
提示
0≤a,b≤100
請使用double定義變量,并使用%lf輸入和輸出
#### 題意分析
這道題確實(shí)沒有什么難得,簡單的a+b,很多人也都a了,提示寫的明明白白(wzy學(xué)長是真的可愛
#### 代碼實(shí)現(xiàn)
```
#include<stdio.h>
int main()
{
double a,b;
scanf("%lf %lf",&a,&b);
printf("%.2lf\n",a+b);
return 0;
}
```
### B. 分糖果
#### 題目描述
單測試點(diǎn)時(shí)限: 2.0 秒
內(nèi)存限制: 512 MB
Codancer 現(xiàn)在有n顆糖果,現(xiàn)在他要把這n顆糖果全部分給兩個(gè)小朋友Dicer和thelittleboy,已知第i顆糖果能夠使小朋友的開心值增加i,為了不讓兩個(gè)小朋友爭吵,他必須使兩個(gè)小朋友最終的開心值的差值最小化,現(xiàn)在Codancer很頭疼,請你快來幫幫他吧QAQ。
輸入
單組輸入
輸入一個(gè)數(shù)n,代表codancer的糖的數(shù)量。
(1≤n≤1000000000)
輸出
輸出兩個(gè)小朋友的開心值的最小差值
樣例
input
3
output
0
input
1
output
1
#### 題意分析
輸入一個(gè)數(shù)n,題意就是把從1-n個(gè)數(shù)分成兩組讓他們的和的差最小。這道題我看到第一感覺就是找規(guī)律,其實(shí)規(guī)律無非也就哪幾種。這道題我們可以列出來幾個(gè)情況求出來答案來找規(guī)律
1 2 3 4 5 6 7 8
```
糖果數(shù)量? 分配方案? ? 最小差值
1? ? ? ? 1? ? 0? ? ? ? 1
2? ? ? ? 1? ? 2? ? ? ? 1
3? ? ? ? 1,2? ? 3? ? ? 0
4? ? ? ? 1,4? ? 2.3? ? 0
5? ? ? ? 1,2,5? ? 3,4? ? 1
6? ? ? ? 1,2,3,5? ? 4,6? 1
7? ? ? ? 1,2,5,6? ? 3,4,7? ? 0
8? ? ? ? 4,6,8? ? 1,2,3,5,7? ? 0
```
現(xiàn)在看起來規(guī)律就很明顯了,1,1,0,0,1,1,0,0......
在找規(guī)律的過程中我發(fā)現(xiàn)從1到n的和如果是偶數(shù),最小差值就是0,如果是奇數(shù),最小差值就是1.于是我直接定義了一個(gè)求和函數(shù)后判斷奇偶,直接T了。。。其實(shí)可以發(fā)現(xiàn)1100是四個(gè)一組出現(xiàn)的,直接n對4求余判斷余數(shù)就好了。
#### 代碼實(shí)現(xiàn)
```
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
if(n%4==0||n%4==3)
puts("0");
else
puts("1");
return 0;
}
```
有些題掌握了規(guī)律實(shí)現(xiàn)起來就會很簡單。
(什么時(shí)候codancer能給我們發(fā)糖吃呢
### C. 中位數(shù)
#### 題目描述
單測試點(diǎn)時(shí)限: 2.0 秒
內(nèi)存限制: 512 MB
給出一個(gè)1?n的排列,統(tǒng)計(jì)該排列有多少個(gè)長度為奇數(shù)的連續(xù)子序列的中位數(shù)是k。中位數(shù)是指把所有元素從小到大排列后,位于中間的數(shù)。
接下來一行n個(gè)數(shù)代表這個(gè)排列。
輸入
單組輸入
一行兩個(gè)數(shù)n,k代表排列的長度以及中位數(shù)。(1≤n≤100000,1≤k≤n)
輸出
輸出滿足條件的區(qū)間個(gè)數(shù)。
樣例
input
7 4
5 7 2 4 3 1 6
output
4
提示
樣例解釋:滿足條件的區(qū)間為{4}, {7,2,4}, {5,7,2,4,3}和{5,7,2,4,3,1,6}。
#### 題意分析
這道題剛看見以為是很簡單的一道題,WA了幾次之后才發(fā)現(xiàn)并不簡單。最后好像也沒幾個(gè)人做出來這道題。學(xué)長講的時(shí)候也沒聽懂。??瓤龋_實(shí)挺難。這兩天為了更好的幫(ceng)助(re)大(du)家,這幾天也是一直在搞這道題。不斷地查閱資料,現(xiàn)在也差不多是搞懂了,快點(diǎn)來幫(ceng)助(re)大(du)家。
參考于:[洛谷P1627題解](https://www.luogu.org/problemnew/solution/P1627)
中位數(shù)說明這個(gè)區(qū)間內(nèi)大于他的數(shù)的數(shù)量與小于他的數(shù)的數(shù)量相等。且這個(gè)題中符合題意的區(qū)間順序是必須與輸入一樣的,不能更改。
先找到中位數(shù)的位置標(biāo)記一下,然后輸入的同時(shí)對每一個(gè)數(shù)進(jìn)行判斷,大于中位數(shù)的標(biāo)記為1,小于中位數(shù)的標(biāo)記為-1。然后從中位數(shù)的左邊開始第一次循環(huán),對標(biāo)記求和,如果有和為0的情況(即大于中位數(shù)的數(shù)的數(shù)量與小于中位數(shù)的數(shù)量相等),即說明這是一個(gè)符合題意的區(qū)間。接著對右邊開始第二次循環(huán),與第一次循環(huán)相等的步驟,但是要多一步,就是要考慮中位數(shù)位于區(qū)間中間(不是兩端)的情況。具體可以在代碼中解釋。最后得到的答案還要加一,因?yàn)橹形粩?shù)自己一個(gè)區(qū)間也是可以的。
#### 代碼實(shí)現(xiàn)
```
#include<bits/stdc++.h>
using namespace std;
int a[100050],flag[100050],f[200050];
const int key=100000;
int main()
{
int n,k,bj,s,ans;
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>a[i];
if(a[i]==k) bj=i;
else if(a[i]>k) flag[i]=1;
else flag[i]=-1;
}//進(jìn)行標(biāo)記
s=ans=0;
for(int i=bj-1;i>=1;i--)
{
s+=flag[i];
f[s+key]++;//用一個(gè)f數(shù)組來記錄s為為-1,0,1時(shí)候的個(gè)數(shù)
if(s==0) ans++;
}
s=0;
for(int i=bj+1;i<=n;i++)
{
s+=flag[i];
if(s==0) ans++;
ans+=f[-s+key];//中位數(shù)在區(qū)間中的情況。
}
? ? ans+=1;
cout<<ans<<endl;
return 0;
}
```
咳咳,可以對著樣例和代碼自己跑一遍可以加深一下理解。
### D. 打麻將
#### 題目描述
單測試點(diǎn)時(shí)限: 2.0 秒
內(nèi)存限制: 512 MB
打麻將實(shí)在是太有趣了,不知道大家過年的時(shí)候有沒有打麻將呢?
我是十分喜歡打麻將的,但是因?yàn)槲也粔蚵斆?,所以我?jīng)常會詐胡(不具備胡牌的條件而胡牌),因此我希望你能幫我判斷一下我當(dāng)前的手牌是否符合胡牌的條件。
為了簡化這個(gè)問題,我們規(guī)定胡牌的條件如下:
你必須有且僅能有一個(gè)對子(即兩張相同的牌)。
除了那個(gè)對子之外,其他的都是刻子(3張相同的牌)。(刻子的數(shù)量可以為0)
我們用兩個(gè)字符表示一張麻將:
B,T, W 分別表示牌的種類為 筒子,條子,萬子 。(可能你不知道這是什么意思,不過沒有關(guān)系,你只需要知道這三種類型的牌是互不相同的。)
數(shù)字1~9表示牌上的數(shù)字。
另外用HZ,F(xiàn)C,BB,EE,WW,SS,NN 來分別表示除了 筒子,條子,萬子 以外的 紅中,發(fā)財(cái),白板,東風(fēng),西風(fēng),南風(fēng),北風(fēng) 。
對于兩種牌來說,只要表示它們的兩個(gè)字符中第一個(gè)字符或第二個(gè)字符任意一個(gè)不同,那么它們就是不同的牌,每種牌最多只有四張。(例如:B1 和 B2,B1 和 T1,HZ 和 FC 都是不同的。)
輸入
第一行是一個(gè)數(shù)字T,表示你需要判斷的次數(shù)。(1 \leq T \leq 10000)
接下來2*T行,前一行是一個(gè)數(shù)字 n 是你的手牌數(shù),2≤n≤14,接下來一行有 n 對字符,每一對字符代表你的一張手牌。
保證不會有未知的牌型,不會有任何一種牌出現(xiàn)超過四次,但是你的手牌數(shù)因?yàn)槟撤N原因可能會是正常出牌不能出現(xiàn)的個(gè)數(shù)。
輸出
如果可以胡牌請輸出 YES,否則輸出 NO 。
樣例
input
3
14
B1 B1 B1 T1 T1 T1 W1 W1 W1 HZ HZ HZ WW WW
2
BB BB
7
BB BB B1 B1 B1 B2 B2
output
YES
YES
NO
#### 題意分析
題面看起來很長,但是我們需要學(xué)會如何找到有用的信息。這道題我們需要知道的就是我們手中的牌只能有一種是出現(xiàn)了兩次,別的牌出現(xiàn)的只能是三次。思路一清晰實(shí)現(xiàn)起來就會簡單點(diǎn)了。這道題如果按我的方法的話希望大家補(bǔ)一下相關(guān)的知識:基礎(chǔ)容器之map以及c++中的string(用char數(shù)組應(yīng)該也是可以的,但是string會方便一些)類型。更詳細(xì)的解釋我會加在代碼里。
#### 代碼實(shí)現(xiàn)
```
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s[15];
int n,a;
cin>>n;
map<string,int> ma;
while(n--)
{
ma.clear();//因?yàn)槭嵌嘟M輸入,所以每次開始時(shí)都需要將map清空,避免干擾到下一次的判斷。
int flag=1;
cin>>a;
for(int i=0;i<a;i++)
{
cin>>s[i];
ma[s[i]]++;
}
map<string,int>::iterator it;
for(it=ma.begin();it!=ma.end();it++)
{
if(it->second==1||it->second==4)
{
flag=0;
break;
}//如果有出現(xiàn)一次的或者出現(xiàn)四次的,肯定不能胡牌。
if(it->second==2)
flag++;//判斷出現(xiàn)兩次的牌的數(shù)量。
}
if(flag==2)//因?yàn)閒lag定義時(shí)的賦值是1,所以如果現(xiàn)在的值是2則說明出項(xiàng)兩次的牌(字符串)只有一個(gè),符合條件,可以胡牌。否則就不能胡牌。
puts("YES");
else
puts("NO");
}
return 0;
}
```
(咳咳,我還是個(gè)麻將“高手”呢,
### E. 假票
#### 題目描述
單測試點(diǎn)時(shí)限: 2.0 秒
內(nèi)存限制: 512 MB
春天到了,萬物復(fù)蘇,乍暖還寒。H城為了慶祝春天的到來,將要舉辦一場盛大的舞會。
由于舞會非常的盛大,H城許多的居民都想?yún)⒓游钑俏鑿d大小有限,只能容納n個(gè)人,為了防止到時(shí)候位置不夠,人太擁擠,H城城主決定在舞會開始前進(jìn)行售票。城主規(guī)定,每個(gè)人只能買一張票,每張票都會有其固定的編號(1~n)。但是有一個(gè)人,由于沒搶到票,居然制造了一張與真票一模一樣的假票!城主知道這個(gè)消息后,當(dāng)然不能允許這種行為,因此就派出他最信任的大臣你去找出制造假票的人。
輸入
多組輸入,處理到文件結(jié)束
第一行兩個(gè)數(shù)n,m (1<=n<=10000,0<=m<=n+1),表示總共售出n張票,編號為 1 ~ n,m表示舞會當(dāng)天到場的人數(shù)(注意:由于有些人可能當(dāng)天有事來不了,這種情況下你可能找不到制造假票的人)。
接下來一行m個(gè)數(shù)a1,a2,.....,am,表示檢票口收到的所有票的編號。
輸出
如果能找到假票,則輸出假票編號,否則輸出-1。
樣例
input
5 6
3 1 4 2 3 5
5 3
1 2 4
output
3
-1
#### 題意分析
這個(gè)題還是比較容易讀懂的,就是讓你輸出一組數(shù)中出現(xiàn)了兩次的數(shù)。我一開始用的是先排序然后判斷每一項(xiàng)與它后面那一項(xiàng)是否相等來判斷是否有出現(xiàn)兩次的,如果有,就將這個(gè)數(shù)輸出,沒有就輸出`-1`,但是不知道為什么會WA,于是又改用了map,還好最后過了。
#### 補(bǔ)題
排序的那種方法也是可以的,只不過因?yàn)槭嵌嘟M輸入,因?yàn)榈谝淮蔚妮斎肫钡臄?shù)量如果比第二次輸入的多,此時(shí)就可能會存在數(shù)組中還依然存在著一些上一組的數(shù)據(jù),導(dǎo)致結(jié)果錯(cuò)誤。參考我之前的錯(cuò)誤代碼發(fā)現(xiàn)其中判斷是否相等的時(shí)候多循環(huán)了一次——最后一次,這就會導(dǎo)致WA了。改一下就行了。代碼請看下面。(感謝學(xué)長哈)
這題我跟小伙伴討論之后發(fā)現(xiàn)用set也是可以的,比較前后的和的大小即可,有興趣的可以自己實(shí)現(xiàn)一下。
#### 代碼實(shí)現(xiàn)
```
#include<bits/stdc++.h>
using namespace std;
int a[10050];
int main()
{
map<int,int> ma;
int n,m,b;
while(~scanf("%d %d",&n,&m))
{
bool flag=1;
ma.clear();
while(m--)
{
cin>>b;
ma[b]++;
}
map<int,int>::iterator it;
for(it=ma.begin();it!=ma.end();it++)
{
if(it->second==2)
{
cout<<it->first<<endl;
flag=0;
break;
}
}
if(flag)
cout<<"-1"<<endl;
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int a[10050];
int main()
{
int n,m;
while(~scanf("%d %d",&n,&m))
{
int ans=-1;
for(int i=0;i<m;i++)
{
cin>>a[i];
}
sort(a,a+m);
for(int i=0;i<m-1;i++)
{
if(a[i]==a[i+1])
{
ans=a[i];
break;
}
}
if(ans!=-1)
cout<<ans<<endl;
else
puts("-1");
}
return 0;
}
```
### F. 字符串博弈
#### 題目描述
單測試點(diǎn)時(shí)限: 2.0 秒
內(nèi)存限制: 512 MB
一天Codancer和Todest玩游戲?,F(xiàn)在有一個(gè)由大寫字母組成的字符串s,Codancer和Todest輪流進(jìn)行一下操作:
如果存在i使得s[i]=s[i+1],就可以把這兩個(gè)字符從s中刪除。比如原本s為ABBA,現(xiàn)在可以把BB刪除,此時(shí)s就變?yōu)锳A。
如果一方不能再執(zhí)行此操作時(shí),該方即為敗者。現(xiàn)在Codancer先手,判斷Codancer能否獲勝。
輸入
單組輸入
輸入字符串s。1≤|s|≤10000
輸出
如果Codancer能夠獲勝輸出”YES”,否則輸出”NO”。(不加引號)。
樣例
input
ABBA
output
NO
#### 題意分析
我對這道題的理解就是將字符串中相鄰且相同的兩個(gè)字母消掉,消到不能再消,統(tǒng)計(jì)消除的次數(shù)就是能進(jìn)行的回合數(shù),再對回合數(shù)的奇偶進(jìn)行判斷就可以了。但是消除的實(shí)現(xiàn)還是用棧(不會的可以補(bǔ)一下知識,這個(gè)我的博客中也有相關(guān)的文章不過是偏實(shí)用性(就是只講了幾種函數(shù)的用法)的)比較輕松。關(guān)于棧的傳送門:[Uncle_drew最帥](https://drew233.github.io/2019/03/01/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/)
#### 代碼實(shí)現(xiàn)
```
#include<bits/stdc++.h>
using namespace std;
char s[10005];
int main()
{
stack<char> sta;
cin>>s;
int a=0;
for(int i=0;i<strlen(s);i++)
{
if(i>0)
{
if(sta.top()==s[i])
{
sta.pop();
a++;
continue;
}
}
sta.push(s[i]);
}
if(a%2==0)
puts("NO");
else
puts("YES");
}
```
(Todest很帥的,小學(xué)妹們抓住機(jī)會,ε=ε=ε=┏(゜ロ゜;)┛
### G. 小w的過路費(fèi)(暫無)
### H. 超級簡單的斐波那契數(shù)列
#### 題目描述
單測試點(diǎn)時(shí)限: 1.0 秒
內(nèi)存限制: 256 MB
眾所周知,斐波那契數(shù)列又稱黃金分割數(shù)列,由數(shù)學(xué)家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入
斐波那契的通項(xiàng)公式為:

計(jì)算斐波那契的第n項(xiàng)是一件容易的事,但是如果給出第n項(xiàng)的斐波那契數(shù)num,你能反推出n嗎?
試一試吧!
輸入
第一行一個(gè)整數(shù)T (0≤T≤100),表示測試組數(shù)。
之后的T行,每行一個(gè)斐波那契數(shù)num (num≠0,1)
輸出
對于每個(gè)測試數(shù)據(jù),輸出一行表示數(shù)num是斐波那契數(shù)列的第幾項(xiàng)
樣例
input
2
2
5
output
3
5
提示
保證num在斐波那契數(shù)列的前200000項(xiàng)中
#### 題意分析
一開始我看錯(cuò)題,以為是數(shù)列的最大值不超過200000.。。。直接交了3次,WA了3次。。。所以說看題還是很重要的。我們昨天也都聽學(xué)長說了,斐波(肥波)那契數(shù)列第50項(xiàng)已經(jīng)爆了unsigned long long了。所以我們直接存是不現(xiàn)實(shí)的,這時(shí)候就需要存儲的時(shí)候?qū)ζ淙∧H缓蟠鎯Γ⑶矣胢ap存儲一下每個(gè)值對應(yīng)的斐波(肥波)那契數(shù)列的項(xiàng)數(shù)。因?yàn)檩斎氲臄?shù)會很大,所以我們需要用到字符串輸入,然后用到一個(gè)很XX的東西——對字符串表示的大數(shù)取模。
#### 代碼實(shí)現(xiàn)
對用字符串輸入的大數(shù)取模(感謝學(xué)長!
```
cin>>s;
ll ans,num;
? ? ? ? ll l=strlen(s);
num=0;
for(ll i=0;i<l;i++)
{
num=num*10+s[i]-'0';
num%=maxx;
}//num就是這個(gè)大數(shù)取模之后的結(jié)果。
```
```
//這道題比賽的時(shí)候我是沒寫出來的,賽后補(bǔ)題。學(xué)會了大數(shù)取模屁顛屁顛的跑去交題
#include<bits/stdc++.h>
using namespace std;
const int maxx=1e9+7;
typedef long long ll;
ll f[200050];
char s[100000];
int main()
{
map<ll,ll> ma;
f[0]=0;
f[1]=1;
for(ll i=2;i<200001;i++)
{
f[i]=(f[i-1]+f[i-2])%maxx;
ma[f[i]]=i;
}//對斐波(肥波)那契數(shù)列進(jìn)行取模存儲
ll n;
cin>>n;
while(n--)
{
cin>>s;
ll ans,num;
num=0;
for(ll i=0;i<strlen(s);i++)
{
num=num*10+s[i]-'0';
num%=maxx;
}
cout<<ma[num]<<endl;
}
return 0;
}
//然后TLE了。。。觀察一下(hao jiu)代碼會發(fā)現(xiàn)我在大數(shù)取模的for循環(huán)里面每次都對s的長度重新求一次,這樣是很耗費(fèi)時(shí)間的,自然會tle,改一下就好
#include<bits/stdc++.h>
using namespace std;
const int maxx=1e9+7;
typedef long long ll;
ll f[200050];
char s[100000];
int main()
{
? ? ios::sync_with_stdio(false);
map<ll,ll> ma;
f[0]=0;
f[1]=1;
for(ll i=2;i<200001;i++)
{
f[i]=(f[i-1]+f[i-2])%maxx;
ma[f[i]]=i;
}
ll n;
cin>>n;
while(n--)
{
cin>>s;
ll ans,num,l;
l=strlen(s);//先把長度求出來,用的時(shí)候直接用
num=0;
for(ll i=0;i<l;i++)
{
num=num*10+s[i]-'0';
num%=maxx;
}
cout<<ma[num]<<endl;
}
return 0;
}
取模的部分也可以這樣寫
for(ll i=0;i<s.length();i++)
{
num=num*10+s[i]-'0';
num%=maxx;
}
```
### I. 斐波那契(非遞歸)
#### 題目描述
單測試點(diǎn)時(shí)限: 2.0 秒
內(nèi)存限制: 512 MB
請輸出斐波那契的第n項(xiàng)
輸入
多組輸入處理到文件結(jié)束,每組輸入一個(gè)數(shù)n。1≤n≤10000
輸出
輸出第n個(gè)斐波那契數(shù)對109+7取模的結(jié)果
樣例
input
3
4
output
2
3
#### 題意分析
簡單的斐波(肥波)那契數(shù)列問題,與J題差不多,不過加了取模。直接代碼就行了。
#### 代碼實(shí)現(xiàn)
```
#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll;
const int maxn=1e9+7;
ll f[10005];
int main()
{
f[0]=0;
f[1]=1;
for(int i=2;i<10001;i++)
{
f[i]=f[i-1]+f[i-2];
f[i]=f[i]%maxn;
}//打表
int a;
while(~scanf("%d",&a))
{
cout<<f[a]<<endl;
}
return 0;
}
```
### J. 斐波那契數(shù)列
#### 題目描述
單測試點(diǎn)時(shí)限: 2.0 秒
內(nèi)存限制: 512 MB
請輸出斐波那契的第n項(xiàng)
輸入
單組輸入
每組輸入一個(gè)數(shù)n。0≤n≤10
輸出
輸出斐波那契數(shù)列的第n項(xiàng)
樣例
input
0
output
0
input
1
output
1
#### 題意分析
妥妥的簽到
#### 代碼實(shí)現(xiàn)
```
#include<stdio.h>
int a[15];
int main()
{
int n;
scanf("%d",&n);
a[0]=0;
a[1]=1;
for(int i=2;i<=10;i++)
{
a[i]=a[i-1]+a[i-2];
}//打表
printf("%d\n",a[n]);
return 0;
}
```
咳咳,寫這個(gè)“題解”,我是為了幫助同學(xué),沒有騙訪問量沒有沒有。有不懂的可以直接qq我或者網(wǎng)頁右下角有一個(gè)可以實(shí)時(shí)聯(lián)系我的小框框你們可以直接跟我聊天,看見就會回復(fù)的,有什么不同的想法和思路可以在評論區(qū)發(fā)表一下意見,畢竟不是官方題解,考慮的可能不周全莫名其妙的a題,集思廣益。