Hello大家好,今天给大家带来的是 Codeforces Round #734 (Div. 3) 的全题目讲解。

本文链接:https://www.lanqiao.cn/questions/204012

感谢蓝桥云课的 Lqyk 同学提供的题解。

A. Polycarp and Coins

题目链接

https://codeforces.com/contest/1551/problem/A

题目大意

有一个人买东西付钱只用一元钱和二元钱, 现在他要付 nnn 元, 他使用一元钱的数量和二元钱数量的差值要最小, 问他付 nnn 元使用了多少一元钱和二元钱?

解题思路

差值最小的话一元钱和二元钱的数量比例要接近 1:11 : 11:1 ,那么总共三元钱, 那么每份都使用的 n/3n / 3n/3 ,最后只要判断一下剩下的钱是0,1,20, 1, 20,1,2 元的情况即可。

AC_Code

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{std::ios::sync_with_stdio(false);int t;cin >> t;while(t--){ll n;cin >> n;ll a = n / 3;ll b = n / 3;if(n % 3 == 2) b++;else if(n % 3 == 1) a++;cout << a << " " << b << endl;}return 0;
}

B1. Wonderful Coloring - 1

题目链接

https://codeforces.com/contest/1551/problem/B1

题目大意

  • nnn​​​​​ 个字符要么染成红绿俩种颜色,要么不染色。

  • 相同颜色的字符俩俩不同。

  • 红绿俩种颜色的字符数量相同。

满足以上三个条件,每种颜色被染色的字符数量是多少?

解题思路

相同的字符每种颜色最多染一个,因此只要对出现次数 ≥2\geq 2≥2 的字符和出现一次的字符分别讨论就行。

  • 出现次数 ≥2\geq 2≥2​ 的字符, 每种颜色都能分到一个,答案加上这些字符的种类数。
  • 出现一次的,红一个,绿一个,答案加上这些字符种类数除以二(向下取整)。

AC_Code

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{std::ios::sync_with_stdio(false);int t;cin >> t;while(t--){string s;cin >> s;map<char, int> mp;int ans = 0;for(int i = 0;i < s.size();i++) mp[s[i]]++;int cnt = 0;for(auto i : mp){if(i.second >= 2) ans++;else cnt++;}cout << ans + cnt / 2 << endl;}return 0;
}

B2. Wonderful Coloring - 2

题目链接

https://codeforces.com/contest/1551/problem/B2

题目大意

  • nnn 个数字,染成 kkk​ 种颜色,要么不染色。

  • 相同颜色的数字的值是俩俩不同的。

  • 所有的 kkk 种颜色的数字数量应该相同。

  • 染色的数字的数量要最多。

用 0−k0 - k0−k 表示染色的颜色种类 (000 表示不染色) ,求满足上述条件的染色方案。

解题思路

和 B1B1B1 一样的思路,考虑将 出现次数≥k\geq k≥k​ 的数字和 出现次数 <k< k<k 的分开讨论。

  • 出现次数 ≥k\geq k≥k​​ 的字符, 每种颜色都能分到一个, 所以把位置存储下来直接染色即可。
  • 出现次数 <k< k<k​ 的集中到一起, 为了防止相同的数字染成同一种颜色,所以先排序在按顺序对下标染色。

AC_Code

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e6 + 50;
struct node{int id, val;bool operator < (const node &p) const{return val < p.val;}
};
vector<int> num[maxn]; //统计某种数字出现的次数
vector<node> q; //集中<k的数字
int main()
{std::ios::sync_with_stdio(false);int t;cin >> t;while(t--){int n, k;cin >> n >> k;vector<int> ans(n + 1, 0), vis(n + 1, 0), a(n + 1);for(int i = 1;i <= n;i++) num[i].clear(); q.clear();for(int i = 1;i <= n;i++){cin >> a[i];num[a[i]].push_back(i);}for(int i = 1;i <= n;i++){if(num[i].size() >= k){for(int j = 0;j < num[i].size();j++){ans[num[i][j]] = j + 1;}vis[i] = 1;//标记是否>=k}}for(int i = 1;i <= n;i++){if(!vis[a[i]]){q.push_back({i, a[i]});}}sort(q.begin(), q.end());int sum = q.size() / k * k, v = 1;//取整,从1开始染色for(int i = 0;i < sum;i++){ans[q[i].id] = v++;if(v == k + 1) v = 1;}for(int i = 1;i <= n;i++){if(ans[i] > k) cout << 0 << " ";//大于K都是多的,都不染色else cout << ans[i] << " ";}cout << endl;}return 0;
}

C. Interesting Story

题目链接

https://codeforces.com/contest/1551/problem/C

题目大意

从 nnn 个只包含 a、b、c、d、ea、b、c、d、ea、b、c、d、e 的字符串中选择若干个,使得某一个单一字符的出现次数大于其余四个总和,问最多可以选多少个字符串。

解题思路

我们可以记录每个字符串 a、b、c、d、ea、b、c、d、ea、b、c、d、e 出现的次数,然后枚举 a、b、c、d、ea、b、c、d、ea、b、c、d、e 分别作为大于其他四个字符总和的情况。

假设当前枚举 aaa 第 iii 个字符串 aaa 出现的次数为 sumsumsum, 其余四个总和为 nownownow ,那么他们的差值 sum−nowsum - nowsum−now 为正的时候是可以选的,为了选择更多,我们贪心的将 sum−nowsum - nowsum−now 的值从大到小排序,不断加入字符串, 保持总和 ≥0\geq 0≥0即可。

AC代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 2e5 + 50;
int a[maxn], b[maxn], c[maxn], d[maxn], e[maxn];
int n;
int get_a(){vector<ll> ans;for(int i = 0;i < n;i++){ll sum = a[i];ll now = b[i] + c[i] + d[i] + e[i];ans.push_back(sum - now);}sort(ans.rbegin(), ans.rend());ll k = 0;int cnt = 0;for(int i = 0;i < n;i++){if(k + ans[i] > 0LL) {cnt++;k += ans[i];}else break;}return cnt;
}
int get_b(){vector<ll> ans;for(int i = 0;i < n;i++){ll sum = b[i];ll now = a[i] + c[i] + d[i] + e[i];ans.push_back(sum - now);}sort(ans.rbegin(), ans.rend());ll k = 0;int cnt = 0;for(int i = 0;i < n;i++){if(k + ans[i] > 0LL) {cnt++;k += ans[i];}else break;}return cnt;
}
int get_c(){vector<ll> ans;for(int i = 0;i < n;i++){ll sum = c[i];ll now = a[i] + b[i] + d[i] + e[i];ans.push_back(sum - now);}sort(ans.rbegin(), ans.rend());ll k = 0;int cnt = 0;for(int i = 0;i < n;i++){if(k + ans[i] > 0LL) {cnt++;k += ans[i];}else break;}return cnt;
}
int get_d(){vector<ll> ans;for(int i = 0;i < n;i++){ll sum = d[i];ll now = a[i] + b[i] + c[i] + e[i];ans.push_back(sum - now);}sort(ans.rbegin(), ans.rend());ll k = 0;int cnt = 0;for(int i = 0;i < n;i++){if(k + ans[i] > 0LL) {cnt++;k += ans[i];}else break;}return cnt;
}
int get_e(){vector<ll> ans;for(int i = 0;i < n;i++){ll sum = e[i];ll now = a[i] + b[i] + c[i] + d[i];ans.push_back(sum - now);}sort(ans.rbegin(), ans.rend());ll k = 0;int cnt = 0;for(int i = 0;i < n;i++){if(k + ans[i] > 0LL) {cnt++;k += ans[i];}else break;}return cnt;
}
int main()
{std::ios::sync_with_stdio(false);int t;cin >> t;while(t--){cin >> n;for(int i = 0;i <= n;i++) a[i] = b[i] = c[i] = d[i]= e[i] = 0;for(int i = 0;i < n;i++){string s;cin >> s;for(int j = 0; j < s.size();j++){if(s[j] == 'a') a[i]++;else if(s[j] == 'b') b[i]++;else if(s[j] == 'c') c[i]++;else if(s[j] == 'd') d[i]++;else if(s[j] == 'e') e[i]++;}}int ans = 0;ans = max(ans, get_a());ans = max(ans, get_b());ans = max(ans, get_c());ans = max(ans, get_d());ans = max(ans, get_e());cout << ans << endl;}return 0;
}

D1. Domino (easy version)

题目链接

https://codeforces.com/contest/1551/problem/D1

题目大意

在 $n * m $ 的网格图放 1×21\times21×2 (横着)或者 2×12\times12×1(竖着) 的多米若骨牌,在 n∗mn * mn∗m 为偶数的情况下,是否能恰好放 kkk 个横着的多米洛骨牌。

解题思路

考虑为什么题意给的是 n∗mn*mn∗m 都是偶数,而不是 n、mn、mn、m 都是偶数。

当 n、mn、mn、m​ 都为偶数的时候, 2×22\times22×2​ 的方格可以任意放 $2 $ 个 1×21\times21×2 横着的或者 2×12 \times 12×1​竖着的,并且它们都是偶数成对出现的,因此我们就可以分割图面为若干个 2×22\times22×2的网格, 此时 kkk 为偶数才能满足条件。

假设若 nnn 为奇数, 画图不难发现必定要放 m/2m/2m/2 个横着的,同理,若 mmm 为奇数, 必定要放n/2n / 2n/2 个竖着的,多出来的行列铺满横的或者竖的后就转化偶数情况。

因此只要判断总得减去必定放的是否放得下 kkk​个并且 kkk​ 要大于必定放横的数量。

AC_Code

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{std::ios::sync_with_stdio(false);int t;cin >> t;while(t--){int n, m, k;cin >> n >> m >> k;int tot = n * m / 2;if(n % 2){k -= m / 2;tot -= m / 2;}if(m % 2) tot -= n / 2;if(k < 0 || k % 2 || k > tot){cout << "NO\n";continue;}cout << "YES\n";}return 0;
}

D2. Domino (hard version)

题目链接

https://codeforces.com/contest/1551/problem/D2

题目大意

在 n×mn \times mn×m 的网格图放 1×21\times21×2 (横着)或者 2×12\times12×1(竖着) 的多米若骨牌,在 n×mn \times mn×m 为偶数的情况下,是否能恰好放 kkk 个横着的多米洛骨牌,用字符输出摆放图案。

解题思路

D1D1D1 的思路能讨论出来后,就按照讨论分别构造即可。

首先先判断有没有奇数的行、列,从 a−za - za−z​ 任意找俩个个字符填充完。

然后将这多的行列暂时删去,当成 n,mn,mn,m​ 都为偶数填充。

先填充 kkk​ 个横着的,剩下的 2×22\times22×2 填充竖着的即可,唯一的问题就是相邻的字符会重复的问题,我们可以根据下标的奇偶关系来交替填充不同​字符,当然字符从a−za - za−z 自己挑。

AC_Code

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 200;
char ans[maxn][maxn];
int main()
{std::ios::sync_with_stdio(false);int t;cin >> t;while(t--){int n, m, k;cin >> n >> m >> k;int tot = n * m / 2;for(int i = 1;i <= n;i++){for(int j = 1;j <= m;j++){ans[i][j] = '#';}}int nn = n, mm = m;if(n % 2){k -= m / 2;tot -= m / 2;int cnt = 1;for(int j = 1;j <= m;j += 2){//最后一行放满横的if(cnt % 2) ans[n][j] = ans[n][j + 1] = 'o';else ans[n][j] = ans[n][j + 1] = 'p';cnt++;}n--;}if(m % 2){tot -= n / 2;int cnt = 1;for(int i = 1;i <= n;i += 2){if(cnt % 2) ans[i][m] = ans[i + 1][m] = 'x';else ans[i][m] = ans[i + 1][m] = 'y';cnt++;}m--;}if(k < 0 || k % 2 || k > tot){cout << "NO\n";continue;}int cnt = 1;for(int j = 1;j <= m;j += 2){cnt ++;for(int i = 1;i <= n;i++){if(k != 0){if((i + cnt) & 1) ans[i][j] = ans[i][j + 1] = 'a';else ans[i][j] = ans[i][j + 1] = 'b';k--;}if(!k) break;}if(!k) break;}for(int i = 1;i <= n;i += 2){cnt++;for(int j = 1;j <= m;j++){if(ans[i][j] == '#'){if((j + cnt) & 1) ans[i][j] = ans[i + 1][j] = 'k';else ans[i][j] = ans[i + 1][j] = 'v';}}}cout << "YES\n";for(int i = 1;i <= nn;i++){for(int j = 1;j <= mm;j++){cout << ans[i][j];}cout << endl;}}return 0;
}

E. Fixed Points

题目链接

https://codeforces.com/contest/1551/problem/E

题目大意

给定一个长度为 nnn 的数组 aaa 和一个常数 kkk。

现有一种操作,操作内容为选择数组 aaa 中任意一个数 aia_iai​ 并删除它,删除之后 aia_iai​ 右边的数将全部向右移动一位,即 ai−1,ai,ai+1,ai+2,...,an→ai−1,ai+1,ai+2,ai+3,...,ana_{i-1},a_i,a_{i+1},a_{i+2},...,a_n\rightarrow a_{i-1},a_{i+1},a_{i+2},a_{i+3},...,a_{n}ai−1​,ai​,ai+1​,ai+2​,...,an​→ai−1​,ai+1​,ai+2​,ai+3​,...,an​。

定义 b1,b2,...,bmb_1,b_2,...,b_mb1​,b2​,...,bm​ 为 aaa 进行若干次操作后的数组,问最少要进行多少次操作,可以使得 bi=ib_i=ibi​=i 的个数大于等于 kkk。

解题思路

因为本题的数据范围不大 1≤k≤n≤2×1031\leq k\leq n\leq 2\times10^31≤k≤n≤2×103,所以不难想到用 dpdpdp 来解决。

定义 fi,jf_{i,j}fi,j​ 表示数组 aaa 的前 iii 个数,删除了jjj 个后, bh=h(1≤h≤i)b_h=h(1\leq h\leq i)bh​=h(1≤h≤i) 的最大个数。

于是当前的这个数 aia_iai​,有两种决策:

  • 删除 aia_iai​:删除 aia_iai​ 后 aia_iai​ 就带来任何贡献,即 fi,j=fi−1,j−1f_{i,j} = f_{i-1,j-1}fi,j​=fi−1,j−1​。
  • 不删除 aia_iai​:此时已经删除了 jjj 个数,那么 aia_iai​ 的位置为 i−ji-ji−j,所以 fi,j=fi−1,j+[ai==i−j]f_{i,j} = f_{i-1,j} + [a_i == i-j]fi,j​=fi−1,j​+[ai​==i−j]

最后从小到大枚举删除的个数 jjj,若 fn,j≥kf_{n,j} \geq kfn,j​≥k,则该 jjj 为答案。

AC_Code

#include<bits/stdc++.h>
using namespace std;
const int N = 2e3 + 10;
int n , k , a[N], f[N][N];
signed main()
{int T = 1;cin >> T;while(T --){cin >> n >> k;memset(f , 0 , sizeof(int) * n * n);for(int i = 1 ; i <= n ; i ++) cin >> a[i];for(int i = 1 ; i <= n ; i ++){for(int j = 0 ; j <= i ; j ++){if(!j) f[i][j] = f[i - 1][j] + (a[i] == i - j);else f[i][j] = max(f[i - 1][j - 1], f[i - 1][j] + (a[i] == i - j));}}bool flag = 0;for(int j = 0 ; j <= n ; j ++) if(f[n][j] >= k){cout << j << '\n';flag = 1;break ;}if(!flag) cout << -1 << '\n';}return 0;
}

F. Equidistant Vertices

题目链接

https://codeforces.com/contest/1551/problem/F

题目大意

给定一个包含 nnn 个节点的树和一个常数 KKK,要求你树中选择 KKK 个节点并放入集合,使得集合内任意两点之间的距离都相等,问有多少种不同的选择方法。

解题思路

  • 当 K=2K = 2K=2 时,无论怎么选取,集合内都只存在一种距离,满足条件,所以答案为 Cn2C_{n}^{2}Cn2​。
  • 当 K>2K > 2K>2 时,则必然存在一个点 uuu,使得集合内的点分别位于 uuu 的不同分支上,且到 uuu 的距离相等(证明略),我们定义这样的 uuu 为集合的中心

我们以 uuu 作为集合的中心,枚举集合内的点到 uuu 的距离,设当前枚举的距离为 ddd。

那么在以 uuu 为根的树里,如果超过 KKK 个分支中存在与 uuu 的距离大于等于 ddd 的节点,则我们可以选择从这些分支中挑选 KKK 个作为方案。定义这些分支为有效分支,并有效分支的个数为 cntcntcnt,那么能带来的方案数为 CcntKC_{cnt}^{K}CcntK​?不对,因为某些有效分支中可能不仅仅存在一个与 uuu 距离大于等于 ddd 的节点,它们所能带来的方案数不能被忽略,也不好直接计算,于是考虑 dpdpdp!

  1. 我们先定义 f[u][j]f[u][j]f[u][j] 表示在以 vvv 为根的子树中,与 vvv 距离为 jjj 的节点的个数,那么:
  • 当 vvv 为 uuu 儿子节点时,f[u][j]=f[v,j−1]f[u][j] = f[v,j-1]f[u][j]=f[v,j−1]

  • 当 vvv 为 uuu 父亲节点时:

    • f[u][j]+=f[v][j−1],(j=1)f[u][j] += f[v][j-1] ,(j=1)f[u][j]+=f[v][j−1],(j=1)

    • f[u][j]+=f[v][j−1]−f[u][j−2](j≥2)f[u][j] += f[v][j - 1] - f[u][j - 2] (j\geq2)f[u][j]+=f[v][j−1]−f[u][j−2](j≥2)

  1. 我们再定义 dp[u][j][k]dp[u][j][k]dp[u][j][k] 表示以 uuu 为根,从 uuu 的前 jjj 个有效分支中,选择 kkk 个有效分支的方案数,那么对于第 jjj 个有效分支(设为 vvv),有以下两种决策:
  • 选择第 jjj 个有效分支:dp[u][j][k]=dp[u][j−1][k−1]×Cf[v][d−1]1=dp[u][j−1][k−1]×f[v][d−1]dp[u][j][k] = dp[u][j - 1][k - 1] \times C_{f[v][d-1]}^{1} = dp[u][j - 1][k - 1] \times f[v][d-1]dp[u][j][k]=dp[u][j−1][k−1]×Cf[v][d−1]1​=dp[u][j−1][k−1]×f[v][d−1].

    f[v][d−1]f[v][d-1]f[v][d−1] 表示 vvv 的子树中与 vvv 距离大于 d−1d-1d−1 的节点个数,即与 uuu 距离大于等于 ddd 的节点个数
    Cf[v][d]1C_{f[v][d]}^1Cf[v][d]1​ 表示从这些节点中任意挑选一个

  • 不选择第 jjj 个有效分支:dp[u][j][k]=dp[u][j−1][k]dp[u][j][k] = dp[u][j - 1][k]dp[u][j][k]=dp[u][j−1][k]

对于每次枚举的距离 ddd ,uuu 对答案的贡献为 dp[u][cnt][K]dp[u][cnt][K]dp[u][cnt][K]

AC_Code

#include<bits/stdc++.h>
using namespace std;
const int N = 1e2 + 10, mod = 1e9 + 7;
struct Edge
{int nex, to;
} edge[N << 1];
int head[N] , TOT;
int n , K , f[N][N];
long long res , dp[N][N][N];
void add_edge(int u, int v)
{edge[++ TOT].nex = head[u];edge[TOT].to = v;head[u] = TOT;
}
void init()
{for(int i = 0 ; i <= n + 1 ; i ++) head[i] = 0;TOT = 0;
}
void dfs(int u, int far)
{for(int i = head[u] ; i ; i = edge[i].nex){int v = edge[i].to;if(v == far) continue ;dfs(v, u);for(int j = 1 ; j <= n ; j ++) f[u][j] += f[v][j - 1];}f[u][0] = 1;
}
void dfs1(int u , int far)
{memset(dp , 0 , sizeof(int) * n * n * n);for(int j = 1 ; j <= n ; j ++){dp[u][0][0] = 1;int cnt = 0;for(int i = head[u] ; i ; i = edge[i].nex){int v = edge[i].to;if(v == far){if(j == 1){dp[u][++ cnt][0] = 1;for(int k = cnt ; k >= 1 ; k --) dp[u][cnt][k] = (dp[u][cnt - 1][k] + dp[u][cnt - 1][k - 1]) % mod;}else{if(f[far][j - 1] - f[u][j - 2] > 0){dp[u][++ cnt][0] = 1;for(int k = cnt ; k >= 1 ; k --) dp[u][cnt][k] = (dp[u][cnt - 1][k] + dp[u][cnt - 1][k - 1] * (f[far][j - 1] - f[u][j - 2]) % mod) % mod;}}}else{if(f[v][j - 1]){dp[u][++ cnt][0] = 1;for(int k = cnt ; k >= 1 ; k --) dp[u][cnt][k] = (dp[u][cnt - 1][k] + dp[u][cnt - 1][k - 1] * f[v][j - 1] % mod) % mod;}}}res += dp[u][cnt][K] , res %= mod;}if(u != 1){for(int j = n ; j >= 1 ; j --){if(j == 1) f[u][j] += f[far][0];else f[u][j] += (f[far][j - 1] - f[u][j - 2]);}}for(int i = head[u] ; i ; i = edge[i].nex){int v = edge[i].to;if(v == far) continue ;dfs1(v, u);}
}
signed main()
{int T = 1;cin >> T;while(T --){init();res = 0;cin >> n >> K ;for(int i = 1 ; i <= n ; i ++) for(int j = 1 ; j <= n + 1; j ++) f[i][j] = 0;for(int i = 1 ; i < n ; i ++){int u, v;cin >> u >> v;add_edge(u, v), add_edge(v, u);}if(K == 2){cout << n * (n - 1) / 2 << '\n';continue ;}dfs(1, 0) , dfs1(1, 0);cout << res << '\n';}return 0;
}

如有编写错误或者疑惑请评论告诉我,我会第一时间回应的(如果代码在终测中挂掉了,也请评论告知我谢谢!!!)

本文作者:Lqyk

本文链接:https://www.lanqiao.cn/questions/204012

版权声明:本作品采用知识共享署名-禁止演绎 2.5 中国大陆许可协议进行许可。

Codeforces Round #734 (Div. 3) 题解相关推荐

  1. Codeforces Round #514 (Div. 2)题解

    Codeforces Round #514 (Div. 2)题解 A 喵,直接模拟. B 枚举所有盖章时的,合法的,左上角的位置.能盖的话就盖一下.最后check一下图案是否相等即可 C 一轮一轮的扔 ...

  2. Codeforces Round #182 (Div. 1)题解【ABCD】

    Codeforces Round #182 (Div. 1)题解 A题:Yaroslav and Sequence1 题意: 给你\(2*n+1\)个元素,你每次可以进行无数种操作,每次操作必须选择其 ...

  3. 【算法题解】Codeforces Round #817 (Div. 4)题解

    文章目录 Codeforces Round #817 (Div. 4)题解 A. Spell Check B. Colourblindness C. Word Game D. Line E. Coun ...

  4. Codeforces Round #747 (Div. 2)题解

    Codeforces Round #747 (Div. 2)题解 (本博客将持续更新以后每场CF div2的题解,喜欢ACM.OI的小伙伴记得点个关注哟) 昨天夜晚刷网络流刷入迷了,渐渐就忘记了我还要 ...

  5. Codeforces Round #789 (Div. 2)题解

    Codeforces Round #789 (Div. 2)题解 A. Tokitsukaze and All Zero Sequence 原题链接 算法标签 贪心 排序 思路 情况一:数组存在零 → ...

  6. Codeforces Round #748 (Div. 3) 题解 完整A~G

    Codeforces Round #748 (Div. 3) 题解 A. Elections 题意 已知竞选中三个候选人的当前得票数 a , b , c a,b,c a,b,c,现在可以增加任何一个人 ...

  7. Codeforces Round #533 (Div. 2)题解

    link orz olinr AK Codeforces Round #533 (Div. 2) 中文水平和英文水平都太渣..翻译不准确见谅 T1.给定n<=1000个整数,你需要钦定一个值t, ...

  8. Codeforces Round #462 (Div. 2)题解

    Codeforces Round #462 (Div. 2) B题--我固执的认为1e18是18位数,导致被hack,花了20分钟才检查出这个错误,很僵硬 Codeforces 934C 题意 给定一 ...

  9. Codeforces Round #441 Div. 2题解

    A.直接判断相邻的边是不是最短边 是就来回走 不然就走一条第二的然后再来回走 #include<cstdio> #include<cstring> #include<al ...

最新文章

  1. Pandas | 5 种技巧高效利用value-counts
  2. java环境变量javac不能成功 win7_Java开发:Java环境搭建
  3. java ajax无刷分页_asp.net+ajax+json来实现无刷新分页功能
  4. 自动挂载ios_开机自动挂载iso
  5. 《人月神话》---1
  6. python2.7_1.13_编写一个SNTP客户端
  7. Leetcode 209.长度最小子序列(滑动窗口)
  8. flex4 日期类型字符串转日期类型(string转Date)
  9. SpringCache @Cacheable 在同一个类中调用方法,导致缓存不生效的问题及解决办法...
  10. 大一计算机word排版试题,武汉大学大一计算机作业word排版
  11. 【精】Photoshop抠图全方位攻略
  12. java毕业设计——基于java+JDBC+sqlserver的固定资产管理系统设计与实现(毕业论文+程序源码)——固定资产管理系统
  13. 无透镜计算成像文章简介
  14. 大数据之Hadoop生态系统概述
  15. GOTC 大会预告 | Apache Pulsar PMC 成员翟佳:Apache Pulsar 架构设计与原理
  16. java 获取mac字体_Mac OS X上的Java App无法正确打印字体
  17. excel数据个数统计问题
  18. 如何用photoshop来做流体渐变
  19. 【mmdetection】mmdetection学习率设置
  20. PLC程序的调试方法及步骤

热门文章

  1. JasperMES.cn JasperMES.com.cn 我的MES网站
  2. 学习Java就要掌握Java技术学习线路
  3. maven报错找不到依赖
  4. 基于官方镜像MySQL做自定义业务扩充镜像
  5. PAT甲题题解-1050. String Subtraction (20)-水题
  6. vmware workstation 上创建的centos 7.2 ,新添加一块网卡。无法找到配置文件。
  7. WP8.1学习系列(第二十二章)——在页面之间导航
  8. linux服务器没网情况下手动安装软件几个方法
  9. UVa 11027 - Palindromic Permutation 回文串,组合加搜索
  10. ip sensor芯片级解决方案