这里写目录标题
一级目录
二级目录
三级目录
链接
Codeforces Beta Round #92 (Div. 2 Only)
Codeforces Beta Round #95 (Div. 2)
A - The number of positions
题目类型:思维
题意:
一共有n个人,有不少于a个人站在他前面,有不多于b个人在他后面,问他的位置有几种选择
代码:
int main(){
int n, ans, a, b; cin >> n >> a >> b;
(n-a-1>b) ? ans=b+1: ans=n-a;
OT(ans);
}
B - Permutations
题目类型:模拟
题意:
给你n个排列,每个排列有k个数字,现在要求你对这n个排列,每个进行重新排列,要求这n个排列中的最大数和最小数的差值最小。
解题思路:
枚举所有的排列,每次直接记录差值
代码:
string v[10];
int main()
{
int n, k, num[10]; RD(n, k);
REP(i, n) cin >> v[i];
REP(i, k) num[i] = i;
int ans = INF;
do
{
vector<int> _;
REP(i, n) {
int t = 0;
REP(j, k)
t = t * 10 + (v[i][num[j]]);
_.push_back(t);
}
sort(ALL(_));
ans = min(ans, _[n-1] - _[0]);
} while (next_permutation(num, num+k));//全排列
OT(ans);
return 0;
}
A - cAPS lOCK
题目类型:模拟
题意:
按照题目要求变更字符
Let’s consider that a word has been typed with the Caps lock key accidentally switched on, if:
either it only contains uppercase letters;
or all letters except for the first one are uppercase.
解题思路:
它仅包含大写字母;
或除第一个字母外的所有字母均为大写。这两种情况下需要改写
代码:
string s;
int main(){
cin >>s;
FOR(i, 1, SZ(s))
if(s[i]>='a' && s[i]<='z'){
cout << s << endl;
return 0;
}
FOR(i, 0, SZ(s)){
if(s[i]>='a' && s[i]<='z')
s[i] = s[i] + 'A' - 'a';
else if(s[i]>='A' && s[i]<='Z')
s[i] = s[i] + 'a' - 'A';
}
cout << s << endl;
return 0;
}
E - Opposites Attract
题目类型:思维
题意:
通过组合,出现最多的0值
代码:
const int N = 12;
LL a[N], b[N];
int main() {
LL n, ans = 0; scanf("%lld", &n);//RD(n);
REP(i, n) {
int t; scanf("%d", &t);
if (t >= 0) {
a[t]++;
} else {
b[-t]++;
}
}
ans = (LL)a[0] * (a[0] - 1) / 2;
FOR_1(i, 1, 10){
ans += (LL)a[i] * b[i];
}
OT(ans);
}
F - The World is a Theatre
题目类型:
题意:
他们需要选择一个小组,恰好有t个演员,其中男生人数不少于4个,女孩人数不少于1个。有多少种方法可以选择一个小组
解题思路:
化简下公式 C(n, m) = C(n - 1, m - 1) + C(n - 1, m)。
先打表出组合数,然后计算就可以了
代码
const int M = 101;
LL arr[M][M];
void C() {
REP(i, M) {
arr[i][0] = 1;
}
FOR_1(i, 1, M) {
FOR_1(j, 1, i) { arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]; }}
}
int main() {
C();
int m, n, t; RD(n, m, t);
LL ans = 0;
FOR(i, 4, t) {
if (n >= i && (t - i) <= m) {
ans += arr[n][i] * arr[m][t - i];
}
}
OT(ans);
return 0;
}