比賽地址
文章目錄
- A-騙紅包
- 題意
- 思路
- 代碼
- B-的面包工坊
- 題意
- 思路
- 代碼
- C-tmk一衣帶水
- 題意
- 思路
- 代碼
- D-三角切
- 題意
- 思路
- 代碼
- E-素數判定
- 題意
- 思路
- 代碼
- F-K階Mex數列
- 題意
- 思路
- 代碼
- G-秧歌Star不要上補習班
- 題意
- 思路
- 解法一
- 解法二
- 代碼
- 解法一
- 解法二
- H 一道難題
- 題意
- 思路
- 代碼
- I 超消函式
- 題意
- 思路
- 代碼
- J 最大公因數排序
- 題意
- 思路
- 代碼
A-騙紅包
題意
在 [ 1 , 1000 ] [1,1000] [1,1000]中隨機選擇一個整數 n n n,zf和zn輪流操作,zf先手,每輪可以執行以下操作之一:
- n = ? n 2 ? n = \lfloor\frac{n}{2}\rfloor n=?2n??;
- n = n ? 1 n = n - 1 n=n?1;
先把 n n n變為 0 0 0的玩家贏,獲得 n n n個硬幣,先進行 1000 1000 1000次游戲,求zf獲得硬幣數的期望,
思路
先考慮
n
n
n是定值時的情況,設
g
[
i
]
g[i]
g[i]表示選擇的數字為
n
n
n,先手是否必勝,
g
[
i
]
=
1
g[i]=1
g[i]=1表示先手必勝,
g
[
i
]
=
0
g[i]=0
g[i]=0表示先手必敗,顯然當數字
?
i
2
?
\lfloor\frac{i}{2}\rfloor
?2i??或數字
n
?
1
n - 1
n?1先手必敗時,數字
n
n
n先手必勝,所以有轉移式
g
[
i
]
=
!
g
[
i
?
1
]
∣
∣
!
g
[
n
/
2
]
g[i]=!g[i-1]||!g[n/2]
g[i]=!g[i?1]∣∣!g[n/2],
當
n
n
n為
[
1
,
1000
]
[1,1000]
[1,1000]中隨機整數時,每次游戲每個數被選的概率為
1
1000
\frac{1}{1000}
10001?,所以一次游戲的硬幣數期望為
∑
i
=
1
1000
g
[
i
]
?
i
?
1
1000
\sum\limits_{i=1}^{1000}g[i]*i*\frac{1}{1000}
i=1∑1000?g[i]?i?10001?,
1000
1000
1000次游戲的硬幣數期望為
∑
i
=
1
1000
g
[
i
]
?
i
\sum\limits_{i=1}^{1000}g[i]*i
i=1∑1000?g[i]?i,
代碼
#include <bits/stdc++.h>
using namespace std;
#define fo(i, x, y) for (int i = (x); i <= (y); ++i)
#define fd(i, x, y) for (int i = (x); i >= (y); --i)
const int maxn = 1e3 + 5;
int g[maxn];
int getint()
{
char ch;
int res = 0, p;
while (!isdigit(ch = getchar()) && (ch ^ '-'));
p = ch == '-'? ch = getchar(), -1 : 1;
while (isdigit(ch))
res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
return res * p;
}
int main()
{
g[1] = 1;
fo(i, 2, 1000) g[i] = !g[i - 1] || !g[i / 2];
int ans = 0;
fo(i, 1, 1000) ans += g[i] * i;
printf("%d\n", ans);
return 0;
}
B-的面包工坊
題意
給定 n n n,需要尋找一個長度為 m m m(自己確定)的數列 { a i } \{a_i\} {ai?},其中 n = ∑ i = 1 m a i n=\sum\limits_{i=1}^{m}a_i n=i=1∑m?ai?,求 ∏ i = 1 m a i \prod\limits_{i=1}^{m}a_i i=1∏m?ai?的最大值,
思路
設 f [ i ] f[i] f[i]為和為 i i i乘積的最大值,對于每個和 i i i,可以列舉最后一個數 j j j的大小,又由于和為 i ? j i-j i?j的乘積最大值已知,所以有轉移方程 f [ i ] = max ? { f [ i ? j ] ? j } ( 1 ≤ j ≤ i ) f[i]=\max\{f[i-j]*j\}(1 \leq j \leq i) f[i]=max{f[i?j]?j}(1≤j≤i),
代碼
#include <bits/stdc++.h>
using namespace std;
#define fo(i, x, y) for (int i = (x); i <= (y); ++i)
#define fd(i, x, y) for (int i = (x); i >= (y); --i)
typedef long long ll;
const int maxn = 100 + 5;
int n;
ll f[maxn];
int getint()
{
char ch;
int res = 0, p;
while (!isdigit(ch = getchar()) && (ch ^ '-'));
p = ch == '-'? ch = getchar(), -1 : 1;
while (isdigit(ch))
res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
return res * p;
}
int main()
{
int T;
T = getint();
while (T--)
{
n = getint();
f[0] = 1;
fo(i, 1, n)
fo(j, 1, i)
f[i] = max(f[i], f[i - j] * j);
printf("%lld\n", f[n]);
}
return 0;
}
C-tmk一衣帶水
題意
略
思路
略
代碼
#include <bits/stdc++.h>
using namespace std;
#define fo(i, x, y) for (int i = (x); i <= (y); ++i)
#define fd(i, x, y) for (int i = (x); i >= (y); --i)
int getint()
{
char ch;
int res = 0, p;
while (!isdigit(ch = getchar()) && (ch ^ '-'));
p = ch == '-'? ch = getchar(), -1 : 1;
while (isdigit(ch))
res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
return res * p;
}
int main()
{
printf("tmknb!");
return 0;
}
D-三角切
題意
給定三條邊的長度,問是否能組成三角形,若能組成三角形,則輸出三角形的型別(銳角,直角,鈍角),
思路
考慮能組成三角形的情況,假定三邊分別為 a , b , c a,b,c a,b,c且 a < b < c a<b<c a<b<c,分情況考慮:
- 直角: c 2 = a 2 + b 2 c^2=a^2+b^2 c2=a2+b2;
- 鈍角,考慮一種極限情況,當 a + b a+b a+b無限接近 c c c時,有 c = a + b c=a+b c=a+b,此時 c 2 > a 2 + b 2 c^2>a^2+b^2 c2>a2+b2,
- 銳角,結合1.2.可得 c 2 < a 2 + b 2 c^2<a^2+b^2 c2<a2+b2,
具體證明可以建系用向量點乘,自行思考,
代碼
#include <bits/stdc++.h>
using namespace std;
#define fo(i, x, y) for (int i = (x); i <= (y); ++i)
#define fd(i, x, y) for (int i = (x); i >= (y); --i)
typedef long long ll;
int getint()
{
char ch;
int res = 0, p;
while (!isdigit(ch = getchar()) && (ch ^ '-'));
p = ch == '-'? ch = getchar(), -1 : 1;
while (isdigit(ch))
res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
return res * p;
}
int main()
{
int T;
T = getint();
while (T--)
{
ll l[5];
l[1] = getint(); l[2] = getint(); l[3] = getint();
sort(l + 1, l + 1 + 3);
if (l[1] + l[2] <= l[3]) printf("No Solution\n");
else if (l[1] * l[1] + l[2] * l[2] == l[3] * l[3]) printf("Right\n");
else if (l[1] * l[1] + l[2] * l[2] < l[3] * l[3]) printf("Obtuse\n");
else printf("Acute\n");
}
return 0;
}
E-素數判定
題意
如題,
思路
自行查書,百度,
代碼
#include <bits/stdc++.h>
using namespace std;
#define fo(i, x, y) for (int i = (x); i <= (y); ++i)
#define fd(i, x, y) for (int i = (x); i >= (y); --i)
int getint()
{
char ch;
int res = 0, p;
while (!isdigit(ch = getchar()) && (ch ^ '-'));
p = ch == '-'? ch = getchar(), -1 : 1;
while (isdigit(ch))
res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
return res * p;
}
bool prime(int x)
{
if (x == 1) return false;
if (x == 2) return true;
for(int i = 2; i * i <= x; i++)
if (x % i == 0) return false;
return true;
}
int main()
{
int T;
T = getint();
while (T--)
{
printf(prime(getint())? "Yes\n" : "No\n");
}
return 0;
}
F-K階Mex數列
題意
定義
m
e
x
(
l
,
r
)
mex(l,r)
mex(l,r)為
{
a
i
∣
l
≤
i
≤
r
}
\{a_i|l \leq i \leq r\}
{ai?∣l≤i≤r}中最小不存在的非負整數,其中
{
a
i
}
\{a_i\}
{ai?}為待求數列,給定
k
,
n
k,n
k,n,結合以下式子求
a
n
a_n
an?,
a
n
=
{
n
n
<
k
m
e
x
(
n
?
k
,
n
?
1
)
n
≥
k
a_n=\begin{cases} n & n<k \\ mex(n-k,n-1) & n \geq k \end{cases}
an?={nmex(n?k,n?1)?n<kn≥k?
思路
經模擬發現, { a n } \{a_n\} {an?}為 0 , 1 , ? ? , k ? 1 , k , 0 , 1 , ? ? , k ? 1 , k 0,1,\cdots,k-1,k,0,1,\cdots,k-1,k 0,1,?,k?1,k,0,1,?,k?1,k不斷回圈,可得答案為 n % ( k + 1 ) n\%(k+1) n%(k+1),
代碼
#include <bits/stdc++.h>
using namespace std;
#define fo(i, x, y) for (int i = (x); i <= (y); ++i)
#define fd(i, x, y) for (int i = (x); i >= (y); --i)
int getint()
{
char ch;
int res = 0, p;
while (!isdigit(ch = getchar()) && (ch ^ '-'));
p = ch == '-'? ch = getchar(), -1 : 1;
while (isdigit(ch))
res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
return res * p;
}
int main()
{
int T = getint();
while (T--)
{
int n, k;
n = getint(); k = getint();
printf("%d\n", n % (k + 1));
}
return 0;
}
G-秧歌Star不要上補習班
題意
給定二維坐標系中若干個點
(
x
i
,
y
i
)
(x_i,y_i)
(xi?,yi?),每個點有權值
v
i
v_i
vi?,
接下來有次個詢問,每次詢問一個矩形/一條線段上的所有點的權值之和,
思路
解法一
用二維前綴和預處理權值之和,每次 O ( 1 ) O(1) O(1)查詢,不懂二維前綴和自行百度,
解法二
對于每個詢問,列舉所有點判斷是否在給定矩形/線段上,若是則累加權值,
代碼
解法一
#include <bits/stdc++.h>
using namespace std;
#define fo(i, x, y) for (int i = (x); i <= (y); ++i)
#define fd(i, x, y) for (int i = (x); i >= (y); --i)
const int maxn = 1e3 + 5;
int n, m, q, k;
int s[maxn][maxn];
int getint()
{
char ch;
int res = 0, p;
while (!isdigit(ch = getchar()) && (ch ^ '-'));
p = ch == '-'? ch = getchar(), -1 : 1;
while (isdigit(ch))
res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
return res * p;
}
int main()
{
int T;
T = 1;
while (T--)
{
n = getint(); m = getint(); k = getint();
fo(i, 1, n)
fo(j, 1, m) s[i][j] = 0;
fo(i, 1, k)
{
int x, y, v;
x = getint(); y = getint(); v = getint();
s[x][y] = v;
}
fo(i, 1, n)
fo(j, 1, m)
s[i][j] = s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1] + s[i][j];
q = getint();
fo(i, 1, q)
{
int x, y, xx, yy, u, d, l, r;
x = getint(); xx = getint(); y = getint(); yy = getint();
u = min(x, xx); d = max(x, xx);
l = min(y, yy); r = max(y, yy);
printf("%d\n", s[d][r] - s[d][l - 1] - s[u - 1][r] + s[u - 1][l - 1]);
}
}
return 0;
}
解法二
自己寫
H 一道難題
題意
給定
n
,
m
n,m
n,m,表示以下數列:
1
,
2
,
.
.
.
,
m
?
1
,
m
,
1
,
2
,
?
1,2,...,m-1 ,m,1,2,\cdots
1,2,...,m?1,m,1,2,?(
1
1
1到
m
m
m回圈)總共
n
n
n項,可以洗掉數列中的若干個數(包括不刪和全刪),求剩下的項組成的數列的種類數,當兩個數列長度不同或有某位不同,則這兩個數列為不同種類的數列,
思路
為了簡潔起見下面稱“剩下的項組成的數列的種類數”為“方案數”,“一個數列執行若干或不執行洗掉操作后得到的數列”為“剩余數列”,
考慮
d
p
dp
dp,設
f
[
i
]
[
j
]
f[i][j]
f[i][j]為前
i
i
i個數,以
j
j
j結尾的剩余方案數,設數列第
i
i
i個數為
a
i
a_i
ai?,則:當
j
≠
a
i
j \neq a_i
j?=ai?時,顯然有
f
[
i
]
[
j
]
=
f
[
i
?
1
]
[
j
]
f[i][j]=f[i-1][j]
f[i][j]=f[i?1][j],下面考慮
j
=
a
i
j=a_i
j=ai?的情況,
按照前
i
?
1
i-1
i?1個數剩余數列結尾的
a
i
a_i
ai?數量進行分類討論:
- 前 i ? 1 i-1 i?1個數的剩余數列為空,則方案數為 1 1 1,
- 前 i ? 1 i-1 i?1個數的剩余數列結尾的 a i a_i ai?數量為0,則剩余數列以 a i a_i ai?以外的數結尾,
- 前 i ? 1 i-1 i?1個數的剩余數列結尾的 a i a_i ai?數量 ≥ 1 \geq 1 ≥1,則剩余數列以 a i a_i ai?結尾,
綜上,當
j
≠
a
i
j \neq a_i
j?=ai?時,
f
[
i
]
[
j
]
=
1
+
∑
k
=
1
m
f
[
i
?
1
]
[
k
]
f[i][j]=1+\sum\limits_{k=1}^m f[i-1][k]
f[i][j]=1+k=1∑m?f[i?1][k],方便起見,可以設
f
[
i
]
[
0
]
f[i][0]
f[i][0]為空數列,令
f
[
i
]
[
0
]
=
1
f[i][0]=1
f[i][0]=1,則:
f
[
i
]
[
j
]
=
{
f
[
i
?
1
]
[
j
]
j
≠
a
i
∑
k
=
0
m
f
[
i
?
1
]
[
k
]
j
=
a
i
f[i][j]=\begin{cases} f[i-1][j] & j \neq a_i \\ \sum\limits_{k=0}^m f[i-1][k]& j=a_i \end{cases}
f[i][j]=????f[i?1][j]k=0∑m?f[i?1][k]?j?=ai?j=ai??
根據
f
[
i
]
[
j
]
f[i][j]
f[i][j]定義可得最終答案為
∑
i
=
0
m
f
[
n
]
[
i
]
\sum\limits_{i=0}^m f[n][i]
i=0∑m?f[n][i],
進一步觀察式子可以發現,對于每個
i
i
i只有
f
[
i
]
[
a
i
]
f[i][a_i]
f[i][ai?]發生改變,且
∑
k
=
0
m
f
[
i
?
1
]
[
k
]
\sum\limits_{k=0}^m f[i-1][k]
k=0∑m?f[i?1][k]為更新前的
f
[
i
?
1
]
f[i-1]
f[i?1]陣列的和,可以考慮用變數
s
u
m
sum
sum維護該和,每次更新
s
u
m
sum
sum即可,細節看代碼,
代碼
#include <bits/stdc++.h>
using namespace std;
#define fo(i, x, y) for (int i = (x); i <= (y); ++i)
#define fd(i, x, y) for (int i = (x); i >= (y); --i)
typedef long long ll;
const int maxn = 1e6 + 5;
const ll mod = 1e9 + 7;
int n, m;
ll f[maxn];
int getint()
{
char ch;
int res = 0, p;
while (!isdigit(ch = getchar()) && (ch ^ '-'));
p = ch == '-'? ch = getchar(), -1 : 1;
while (isdigit(ch))
res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
return res * p;
}
int main()
{
int T = getint();
while (T--)
{
n = getint(); m = getint();
f[0] = f[1] = 1;
ll sum = 2;
fo(i, 2, m) f[i] = 0;
fo(i, 2, n)
{
int now = (i - 1) % m + 1;
ll nsum = (sum * 2 % mod - f[now] + mod) % mod;
f[now] = sum;
sum = nsum;
}
ll ans = 0;
fo(i, 0, m) (ans += f[i]) %= mod;
printf("%lld\n", ans);
}
return 0;
}
I 超消函式
題意
給定一個長度為 n n n的排列,每次可以選擇兩個數 a , b a,b a,b,洗掉這兩個數,加入 g c d ( a , b ) gcd(a,b) gcd(a,b),并把 g c d ( a , b ) gcd(a,b) gcd(a,b)累加到 s u m sum sum中,要求最后只剩一個數,求 s u m sum sum的最大值,
思路
考慮
g
c
d
(
a
,
b
)
gcd(a,b)
gcd(a,b),設
a
=
2
p
1
?
3
p
2
?
?
?
,
b
=
2
p
1
′
?
3
p
2
′
?
?
a=2^{p_1}*3^{p_2}*\cdots,b=2^{p_1'}*3^{p_2'}*\cdots
a=2p1??3p2???,b=2p1′??3p2′???,
g
c
d
(
a
,
b
)
=
2
m
i
n
{
p
1
,
p
1
′
}
?
3
m
i
n
{
p
2
,
p
2
′
}
?
?
gcd(a,b)=2^{min\{p_1,p_1'\}}*3^{min\{p_2,p_2'\}}*\cdots
gcd(a,b)=2min{p1?,p1′?}?3min{p2?,p2′?}??,
對于兩個數
a
,
b
a,b
a,b,不妨令
a
>
b
a>b
a>b,有
g
c
d
(
a
,
b
)
≤
min
?
{
a
,
b
}
gcd(a,b) \leq \min\{a,b\}
gcd(a,b)≤min{a,b},當
b
b
b為
a
a
a的因子時取等號,即能取到最大值
b
b
b,所以,當
a
a
a固定時,
b
b
b取
a
a
a的最大因子時
g
c
d
(
a
,
b
)
gcd(a,b)
gcd(a,b)有最大值,即
b
=
a
/
m
p
r
i
[
a
]
b=a/mpri[a]
b=a/mpri[a],其中
m
p
r
i
[
a
]
mpri[a]
mpri[a]表示
a
a
a的最小質因子,
考慮最大的數為
n
n
n,令另外一個數
m
=
n
/
m
p
r
i
[
n
]
m=n/mpri[n]
m=n/mpri[n]時,此時
g
c
d
(
n
,
m
)
gcd(n,m)
gcd(n,m)有最大值
m
m
m,洗掉
n
,
m
n,m
n,m后新加入的數為
m
m
m,相當于只洗掉了
n
n
n,現在問題變成長度為
n
?
1
n-1
n?1的子問題,重復以上操作即可,
若
m
m
m不取
n
/
m
p
r
i
[
n
]
n/mpri[n]
n/mpri[n]有沒有可能更優?假設
m
≠
n
/
m
p
r
i
[
n
]
m \neq n/mpri[n]
m?=n/mpri[n],有兩種情況:
- m m m為 n n n的因子,此時 g c d ( n , m ) < g c d ( n , n / m p r i [ n ] ) gcd(n,m) < gcd(n,n/mpri[n]) gcd(n,m)<gcd(n,n/mpri[n]),且執行完刪數、加數后是長度為 n ? 1 n-1 n?1的子問題,不可能更優,
- m m m不為 n n n的因子,同樣有 g c d ( n , m ) < g c d ( n , n / m p r i [ n ] ) gcd(n,m) < gcd(n,n/mpri[n]) gcd(n,m)<gcd(n,n/mpri[n]),但洗掉完 n , m n,m n,m后增加了一個小于 m m m的數,設其為 k k k,此時 k k k是 m m m的因子, k k k與其他數的 g c d gcd gcd值不會超過 m m m與其他數的 g c d gcd gcd值,即不可能更優,
所以答案為 ∑ i = 1 n i / m p r i [ i ] \sum\limits_{i=1}^ni/mpri[i] i=1∑n?i/mpri[i],其中 m p r i [ i ] mpri[i] mpri[i]為 i i i的最小質因子, m p r i [ i ] mpri[i] mpri[i]用任意質數篩求即可,下面代碼用的是線性質數篩,
代碼
#include <bits/stdc++.h>
using namespace std;
#define fo(i, x, y) for (int i = (x); i <= (y); ++i)
#define fd(i, x, y) for (int i = (x); i >= (y); --i)
typedef long long ll;
const int maxn = 1e4 + 5;
int n, m;
int g[maxn], pri[maxn];
int getint()
{
char ch;
int res = 0, p;
while (!isdigit(ch = getchar()) && (ch ^ '-'));
p = ch == '-'? ch = getchar(), -1 : 1;
while (isdigit(ch))
res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
return res * p;
}
int main()
{
int T = getint();
while (T--)
{
n = getint();
fo(i, 1, n) g[i] = 0;
m = 0;
ll ans = 0;
fo(i, 2, n)
{
if (!g[i]) g[i] = i, pri[++m] = i;
fo(j, 1, m)
{
if (pri[j] > g[i] || i > n / pri[j]) break;
g[i * pri[j]] = pri[j];
}
ans += i / g[i];
}
printf("%lld\n", ans);
}
return 0;
}
J 最大公因數排序
題意
給定長度為 n n n的數列 { a i } \{a_i\} {ai?},令 b i = 2 a i b_i=2^{a_i} bi?=2ai?,若 g c d ( b i , b j ) = m i n { b i } ( i ≠ j ) gcd(b_i,b_j)=min\{b_i\}(i \neq j) gcd(bi?,bj?)=min{bi?}(i?=j),則可以交換 b i b_i bi?和 b j b_j bj?,問能否將 { b i } \{b_i\} {bi?}變為有序,
思路
首先
g
c
d
(
b
i
,
b
j
)
=
g
c
d
(
2
a
i
,
2
a
j
)
=
2
m
i
n
{
a
i
,
a
j
}
gcd(b_i,b_j)=gcd(2^{a_i},2^{a_j})=2^{min\{a_i,a_j\}}
gcd(bi?,bj?)=gcd(2ai?,2aj?)=2min{ai?,aj?},
g
c
d
(
b
i
,
b
j
)
=
m
i
n
{
b
i
}
(
i
≠
j
)
gcd(b_i,b_j)=min\{b_i\}(i \neq j)
gcd(bi?,bj?)=min{bi?}(i?=j)等價于
2
m
i
n
{
a
i
,
a
j
}
=
2
m
i
n
{
a
i
}
2^{min\{a_i,a_j\}}=2^{min\{a_i\}}
2min{ai?,aj?}=2min{ai?},即
m
i
n
{
a
i
,
a
j
}
=
m
i
n
{
a
i
}
min\{a_i,a_j\}=min\{a_i\}
min{ai?,aj?}=min{ai?},
問題可以轉化為對于
i
≠
j
i \neq j
i?=j,
a
i
a_i
ai?和
a
j
a_j
aj?中存在
{
a
i
}
\{a_i\}
{ai?}的最小值,則可以交換
a
i
,
a
j
a_i,a_j
ai?,aj?,問最后否將
{
a
i
}
\{a_i\}
{ai?}變為有序,顯然最小值是可以自由移動的,可以借助最小值將
{
a
i
}
\{a_i\}
{ai?}變為有序,不清楚的可以手動模擬一下,所以答案恒為"Yes",
代碼
#include <bits/stdc++.h>
using namespace std;
#define fo(i, x, y) for (int i = (x); i <= (y); ++i)
#define fd(i, x, y) for (int i = (x); i >= (y); --i)
const int maxn = 1e5 + 5;
int n;
int a[maxn];
int getint()
{
char ch;
int res = 0, p;
while (!isdigit(ch = getchar()) && (ch ^ '-'));
p = ch == '-'? ch = getchar(), -1 : 1;
while (isdigit(ch))
res = (res << 3) + (res << 1) + (ch ^ 48), ch = getchar();
return res * p;
}
int main()
{
int T;
T = getint();
while (T--)
{
n = getint();
fo(i, 1, n) a[i] = getint();
printf("Yes\n");
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/182965.html
標籤:其他
