文章目录

  • A
  • B
  • C
  • D

A

思路:就是三个点如果任意两个点的横坐标相同,并且任意两个点的纵坐标相同的话就不行。

#include <cstring>
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;const int N = 100;
int a[N];
map<int, int> b;
map<int, int> c;void solve()
{int flag1 = 1, flag2 = 1;for (int i = 1; i <= 6; i++)cin >> a[i];for (int i = 1; i <= 6; i += 2){b[a[i]]++;if (b[a[i]] == 2)flag1 = 0;}for (int i = 2; i <= 6; i += 2){c[a[i]]++;if (c[a[i]] == 2)flag2 = 0;}if (!flag1 && !flag2){cout << "NO" << endl;}else{cout << "YES" << endl;}
}int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T;cin >> T;while (T--){b.clear();c.clear();solve();}return 0;
}

B

思路:按题意模拟一遍即可,但是第二个到第n个要先排序。

#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;#define int long long
const int N = 1e6 + 10;
int a[N];void solve()
{int n;cin >> n;int sum = 0;int k;cin >> k;for (int i = 1; i < n; i++){cin >> a[i];}sort(a + 1, a + n);for (int i = 1; i < n; i++){if (k < a[i]){int j = k + a[i];if ((k + a[i]) % 2 == 0){k = (k + a[i]) / 2;a[i] = (k + a[i]) / 2;}else{k = (k + a[i]) / 2 + 1;a[i] = (k + a[i]) / 2;}}}cout << k << endl;
}signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T;cin >> T;while (T--){solve();}return 0;
}

C

C题是比较难的一个题
思路:首先我们考虑 a [ 1 ] [ i ] , a [ 2 ] [ i ] , a [ 3 ] [ i ] , . . . , a [ i ] [ i ] a[1][i],a[2][i],a[3][i],...,a[i][i] a[1][i],a[2][i],a[3][i],...,a[i][i]我们可以发现这样它必须是222221111的这种情况(我们先不考虑0的情况)也就是前面是2后面是1的情况。我们定义 f [ L ] [ R ] f[L][R] f[L][R]是1 ~ L-1是2,并且L ~ R是1的串的方案数。然后我们考虑状态转移。状态转移可以分两种情况如果第R和R+1是相同的那么就是 f [ L ] [ R + 1 ] = f [ L ] [ R + 1 ] + f [ L ] [ R ] f[L][R+1] =f[L][R+1]+ f[L][R] f[L][R+1]=f[L][R+1]+f[L][R],如果是不同的 f [ R + 1 ] [ R + 1 ] = f [ R + 1 ] [ R + 1 ] + f [ L ] [ R ] f[R+1][R+1] = f[R+1][R+1]+f[L][R] f[R+1][R+1]=f[R+1][R+1]+f[L][R],我们在具体实现的时候还要判断一下情况是否成立。借鉴的大佬的思路传送门大佬有图文便于理解。非常建议去康康。

#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;#define int long long
const int N = 1e2 + 10, mod = 998244353;
int a[N][N], dp[N][N];void solve()
{int n;cin >> n;for (int i = 1; i <= n; i++)for (int j = i; j <= n; j++)cin >> a[i][j];dp[1][1] = 2;//一开始没要求,可以存1或者0,所以是两种方案。for (int R = 1; R <= n; R++){for (int L = 1; L <= R; L++){bool flag = true;for (int i = 1; i <= L - 1; i++)if (a[i][R] == 1)flag = false;for (int i = L; i <= R; i++)if (a[i][R] == 2)flag = false;if (!flag)//方案不合理的话就直接赋成0dp[L][R] = 0;(dp[L][R + 1] += dp[L][R]) %= mod;(dp[R + 1][R + 1] += dp[L][R]) %= mod;}}int ans = 0;for (int i = 1; i <= n; i++)(ans += dp[i][n]) % mod;cout << ans % mod << endl;
}signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T = 1;while (T--){solve();}return 0;
}

D

思路:佬们直接猜的结论,比赛的时候我并没有猜出来

#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;#define int long long
const int N = 1e6 + 10;
int a[N];void solve()
{int n;string s;int sum1 = 0;int sum0 = 0;cin >> n >> s;for (int i = 0; i < s.size(); i++){if (s[i] == '1')sum1++;elsesum0++;}int left = pow(2, sum1);int right = pow(2, n) - pow(2, sum0) + 1;for (int i = left; i <= right; i++){cout << i << ' ';}cout << endl;
}signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T=1;while (T--){solve();}return 0;
}

Educational Codeforces Round 140 (Rated for Div. 2)A~D题解相关推荐

  1. Educational Codeforces Round 140 (Rated for Div. 2)题解

    看看时间还有十几分钟,开不出来题了,写个题解 A. Cut the Triangle 检查是不是直角边平行于坐标轴的直角三角形即可 这里可以用异或来写,代码较为简洁,我就不改了,直接贴上我的丑代码 c ...

  2. Educational Codeforces Round 133 (Rated for Div. 2)(CD题解)

    Educational Codeforces Round 133 (Rated for Div. 2)CD题解 过AB补CD C. Robot in a Hallway 题意 题意:现有 2∗m 的方 ...

  3. Educational Codeforces Round 137 (Rated for Div. 2)A~D题解

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 A. Password B. Permutation Val C. Save the Magazines D. Pro ...

  4. Educational Codeforces Round 113 (Rated for Div. 2) A~D题解

    文章目录 A. Balanced Substring B. Chess Tournament C. Jury Meeting D. Inconvenient Pairs A. Balanced Sub ...

  5. Educational Codeforces Round 127 (Rated for Div. 2) A~E 题解

    A. String Building 题意: 问是否可以用 a a . a a a . b b . b b b aa.aaa.bb.bbb aa.aaa.bb.bbb 拼成所给字符串. 思路: 将原字 ...

  6. Educational Codeforces Round 113 (Rated for Div. 2) D. Inconvenient Pairs

    Educational Codeforces Round 113(Rated for Div. 2)的其他题解点我 D. Inconvenient Pairs 原题链接 题目大意: 在一个大小为 1e ...

  7. Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...

  8. Educational Codeforces Round 106 (Rated for Div. 2)(A ~ E)题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 Educational Codeforces Round 106 (Rated for Div. ...

  9. Educational Codeforces Round 37 (Rated for Div. 2) 1

    Educational Codeforces Round 37 (Rated for Div. 2) A.Water The Garden 题意:Max想给花园浇水.花园可被视为长度为n的花园床,花园 ...

最新文章

  1. opengl 创建context_OpenGL学习笔记1-创建窗口,绘制三角形
  2. CentOS7安装CDH 第三章:CDH中的问题和解决方法
  3. soapUI学习笔记--用例字段参数化
  4. 文件共享之Samba
  5. JDBC连接MySQL数据库及示例
  6. Android系统匿名共享内存Ashmem(Anonymous Shared Memory)在进程间共享的原理分析
  7. floatvalue 重写_Java Number floatValue()方法与示例
  8. 初识设计模式(装饰者模式)
  9. HDU 1151 Air Raid
  10. XP cmd命令 部分
  11. 更新学生的成绩C语言,学生成绩管理系统C语言代码实现.pdf
  12. 高可用web架构: LVS+keepalived+nginx+apache+php+eaccelerator(+nfs可选 可不选)
  13. 苹果手用计算机解锁手机密码,苹果手机怎么强制解锁 iPhone强制解锁密码教程...
  14. selenium 更新 chromedriver 驱动
  15. 人工智能定义及三次热潮
  16. 如何激发员工的积极性
  17. LiteOS学习笔记-1LiteOS内核
  18. ANSYS Workbenc 高级工程实例分析培训视频教程
  19. PHP环境搭建(phpStudy)与集成开发工具(phpStorm)的安装
  20. ”广告电商“商业模式及逻辑

热门文章

  1. matlab抢占时隙算法,基于公平性的D2D时隙调度算法
  2. office word 自动生成目录 以及多级列表级别的设置
  3. 【力扣(LeetCode)】【C/C++】【19.删除链表的倒数第 N 个结点】
  4. 【软考】【系统架构设计师】2021上午真题及答案
  5. 上传文件到服务器指令,上传文件到远程服务器的命令
  6. Vue关于pdf展示问题——第三方电子签章不能正常展示
  7. 图新地球系列教程-标绘编辑:(项目实战技巧,做出好看实用的标绘)
  8. 飞机大战之-添加背景
  9. Dubbo NoSuchMethodException: Not found method “xxx“ in class xxx问题解决
  10. 通信手机术语:什么是IMEI IMEI串号组成