命名

暴力

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 char S[1111], T[1111], a[1111], b[1111];
 4
 5 int main() {
 6     int N;
 7     scanf("%d", &N);
 8     while(N--) {
 9         scanf("%s %s", S + 1, T + 1);
10         int ls = strlen(S + 1), lt = strlen(T + 1), la = 0, lb = 0;
11         for(int i = 1; i <= ls; ++i) {
12             if(i % 2) a[++la] = S[i];
13             else b[++lb] = S[i];
14         }
15         int pa = 1, pb = 1;
16         for(int i = 1; i <= lt; ++i) {
17             if(pa <= la && T[i] == a[pa]) pa++;
18             if(pb <= lb && T[i] == b[pb]) pb++;
19         }
20         puts(pa > la || pb > lb ? "Yes" : "No");
21     }
22     return 0;
23 }

Aguin

洗牌

暴力

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int a[1111];
 4
 5 void solve(int l, int r) {
 6     int m = (l + r) / 2;
 7     for (int i = l; i <= m; ++i) swap(a[i], a[m+i-l+1]);
 8     if (r - l > 1) solve(l, m), solve(m + 1, r);
 9 }
10
11 int main() {
12     int n, t;
13     scanf("%d %d", &n, &t);
14     for (int i = 1; i <= (1 << n); ++i) scanf("%d", a + i);
15     if (t % 2 == 0) for (int i = 1; i <= (1 << n); ++i) printf("%d\n", a[i]);
16     else {
17         solve(1, 1 << n);
18         for (int i = 1; i <= (1 << n); ++i) printf("%d\n", a[i]);
19     }
20     return 0;
21 }

Aguin

密码更改

暴力

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long LL;
 4 LL o, t, ans = -1, b;
 5 char s[22];
 6 int l;
 7
 8 LL dis(LL x, LL y) {
 9     return min(abs(x - y), b - abs(x - y));
10 }
11
12 int vis[10];
13 void dfs(int x) {
14     if(x == l + 1) {
15         if(ans == -1) ans = t;
16         else if(dis(o, ans) < dis(o, t)) ans = t;
17         else if(dis(o, ans) == dis(o, t) && t < ans) ans = t;
18         return;
19     }
20     for(int i = 0; i <= 9; ++i) {
21         if(vis[i]) continue;
22         vis[i] = 1, t = t * 10 + i, dfs(x + 1);
23         vis[i] = 0, t /= 10;
24     }
25 }
26
27 void print(int x, LL y) {
28     if(x != 1) print(x - 1, y / 10);
29     printf("%lld", y % 10);
30 }
31
32 int main() {
33     scanf("%s", s + 1);
34     l = strlen(s + 1);
35     b = 1;
36     for(int i = 1; i <= l; ++i) b *= 10;
37     sscanf(s + 1, "%lld", &o);
38     dfs(1);
39     print(l, ans);
40     return 0;
41 }

Aguin

道路摧毁

树dp

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long LL;
 4 const LL INF = 1e18;
 5 const int maxn = 2e5 + 10;
 6 vector<int> G[maxn], W[maxn];
 7 int lab[maxn];
 8
 9 LL dp[maxn][3];
10 void dfs(int x, int f) {
11     if(lab[x] == 1) dp[x][2] = INF;
12     if(lab[x] == 2) dp[x][1] = INF;
13     for(int i = 0; i < G[x].size(); ++i) {
14         int to = G[x][i], w = W[x][i];
15         if(to == f) continue;
16         dfs(to, x);
17         if(lab[x] != 1) dp[x][2] += min(dp[to][2], dp[to][1] + w);
18         if(lab[x] != 2) dp[x][1] += min(dp[to][1], dp[to][2] + w);
19     }
20 }
21
22 int main() {
23     int n, o, mX, mY;
24     scanf("%d", &n);
25     scanf("%d", &mX);
26     for(int i = 1; i <= mX; ++i) scanf("%d", &o), lab[o] = 1;
27     scanf("%d", &mY);
28     for(int i = 1; i <= mY; ++i) scanf("%d", &o), lab[o] = 2;
29     for(int i = 1; i < n; ++i) {
30         int u, v, w;
31         scanf("%d %d %d", &u, &v, &w);
32         G[u].push_back(v), W[u].push_back(w);
33         G[v].push_back(u), W[v].push_back(w);
34     }
35     dfs(1, 0);
36     printf("%lld\n", min(dp[1][1], dp[1][2]));
37     return 0;
38 }

Aguin

转载于:https://www.cnblogs.com/Aguin/p/9164835.html

[Offer收割]编程练习赛63相关推荐

  1. 最简真分数c语言,HihoCoder1655 : 第K小最简真分数([Offer收割]编程练习赛39)(唯一分解+容斥定理+二分)(不错的数学题)...

    描述 给一个整数N,请你求出以N为分母的最简(既约)真分数中第K小的是多少? 输入 两个整数N个K. 对于30%的数据,1 <= N <= 1000000 对于100%的数据,1 < ...

  2. ACM学习历程—Hihocoder [Offer收割]编程练习赛1

    比赛链接:http://hihocoder.com/contest/hihointerview3/problem/1 大概有一个月没怎么打算法了.这一场的前一场BC,也打的不是很好.本来Div1的A和 ...

  3. hihocoder offer收割编程练习赛11 B 物品价值

    思路: 状态压缩 + dp. 实现: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> ...

  4. [Offer收割]编程练习赛50

    题目3 : 末尾有最多0的乘积 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定N个正整数A1, A2, ... AN. 小Hi希望你能从中选出M个整数,使得它们的乘 ...

  5. hihocoder offer收割编程练习赛12 B 一面砖墙

    思路: 就是求哪个长度出现的次数最多. 实现: 1 #include <iostream> 2 #include <cstdio> 3 #include <algorit ...

  6. 【[Offer收割]编程练习赛9 C】三等分

    [题目链接]:http://hihocoder.com/problemset/problem/1479 [题意] . [题解] 首先算出所有节点的权值的和val; 然后如果val%3!=0则直接输出0 ...

  7. [Offer收割]编程练习赛15 A.偶像的条件[贪心]

    #1514 : 偶像的条件 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi的学校正面临着废校的大危机.面对学校的危机,小Hi同学们决定从ABC三个班中各挑出一名同 ...

  8. hihocoder [Offer收割]编程练习赛24

    比赛https://hihocoder.com/contest/offers24/problems 应该能拿到个鼠标垫 舒服了 这个oj体验好差,每次都要先因为选错语言CE一发,而且刷新之后还是默认G ...

  9. hihocoder offer收割编程练习赛8 B 拆字游戏

    思路: 模拟,dfs. 注意题目中的trick,输出一块的时候不要把其他块也输出了. 实现: 1 #include <cstring> 2 #include <iostream> ...

最新文章

  1. python和R数据类型查看、赋值、列表、for循环、函数用法对比示例
  2. opencv利用直方图判断人脸光照质量
  3. 04.React事件 方法、 React定义方法的几种方式 获取数据 改变数据 执行方法传值...
  4. 阿里云AI如何助攻世界杯?视频集锦背后的技术实践
  5. python中locked_Python锁类| 带示例的locked()方法
  6. Android 功耗(10)---如何测试 Mediatek 平台各个场景的功耗数据?
  7. 通过fork进程爆破canary
  8. ES6——变量的解构赋值
  9. 我们为什么要学习 Python、TypeScript 与 Go?
  10. 2020年4月编程语言排行榜:少儿编程真有这么火吗?
  11. 图像识别---opencv安装
  12. 挑战程序设计竞赛_竞赛通知 | 第二届全国高校计算机能力挑战赛——程序设计赛来啦...
  13. 苹果ID登陆第三方有漏洞?硬核!Gartner报告腾讯云数据库增速国内第一;“小米快递”商标注册,这是要入局物流领域?...
  14. shader编程-三维场景下SDF建模,对模型进行扭曲、弯曲、裁剪、掏空操作(WebGL-Shader开发基础12)
  15. python 交通_Python可视化交通拥堵情况
  16. neu坐标系和xyz坐标系转换_航测必知的坐标系详解和转换关系
  17. PAT乙级【1001~1050】
  18. 基于改进PSGAN的AI自动美颜化妆系统(源码&教程)
  19. Quartus II无法打开
  20. GSMS软件系统ISO文件刻录教程

热门文章

  1. mybatis使用注解开发
  2. python打包成exe可执行文件指定进程名字
  3. lightgbm 决策树 可视化 graphviz
  4. MindInsight训练可视整体设计介绍
  5. SOC,System on-a-Chip技术初步
  6. 2021年大数据Spark(二十):Spark Core外部数据源引入
  7. Git 头指针分离与 FETCH_HEAD
  8. Android 接口回调
  9. com.android.ide.common process ProcessException:Failed to execcue aapt
  10. Android SDK Manager 的介绍