Codeforces Round #698 (Div. 2) A-E解题报告与解法证明

Codeforces Round #698 (Div. 2) A-E解题报告与解法证明

题目解法总体概括

在这里插入图片描述

A Nezzar and Colorful Balls

在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;const int N = 110;
int a[N], f[N];int main()
{int t;  cin >> t;while (t -- ){static int n;scanf("%d", &n);for (int i = 1; i <= n; i ++ )  scanf("%d", &a[i]);int res = 1;for (int i = 1; i <= n; i ++ ){f[i] = 1;for (int j = 1; j < i; j ++ ){if (a[j] >= a[i])    f[i] = max(f[i], f[j] + 1);}res = max(res, f[i]);}cout << res << endl;}return 0;
}

B Nezzar and Lucky Number

在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;typedef long long LL;
LL x, n, d;bool Check()
{if (x <= 9LL)   return x % d == 0;else if (x < 10 * d){for (int i = 0; i < x; i += 10){if ((x - i) % d == 0)return true;}return false;}elsereturn true;
}
int main()
{int t;  cin >> t;while (t -- ){scanf("%lld%lld", &n, &d);for (int i = 1; i <= n; i ++ ){scanf("%lld", &x);if (Check())puts("YES");elseputs("NO");}}return 0;
}

C Nezzar and Symmetric Array

在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;typedef long long LL;
const int N = 200010, INF = 0x3f3f3f3f3f3f3f3f3f;
LL a[N], d[N];
int n;bool cmp(const LL &t1, const LL &t2)
{return t1 > t2;
}int main()
{int t;  cin >> t;while (t -- ){scanf("%d", &n);for (int i = 1; i <= 2 * n; i ++ )  scanf("%lld", &d[i]);sort(d + 1, d + 1 + 2 * n, cmp);bool flag = true;d[2 * n + 1] = -INF;for (int i = 1; i <= n; i ++ ){if (d[2 * i] != d[2 * i - 1]){flag = false;   break;}if (d[2 * i] <= d[2 * i + 1]){flag = false;   break;}}
/*for (int i = 1; i <= 2 *  n; i ++ )printf("%lld, ", d[i]);cout << endl;
*/// 不满足 d 的基本性质if (!flag){puts("NO");continue;}LL sum = 0; // 2(a1 + a2 + ... + a(i-1) )LL tmp;for (int i = 1; i <= n; i ++ ){tmp = d[2 * i] - sum;if (tmp % (2 * (n - i + 1)) != 0){flag = false;break;}else{a[i] = tmp / (2 * (n - i + 1));if (a[i] <= 0)  // 必须是正数{flag = false;   break;}sum += 2 * a[i];}}
/*for (int i = 1; i <= n; i ++ )printf("%lld, ", a[i]);cout << endl;
*/if (flag)puts("YES");elseputs("NO");}return 0;
}

D Nezzar and Board

两个数字x, y的情况
在这里插入图片描述
三个数字的x,y,z的情况
使用x,y两种情况的结论(引理)
在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;typedef long long LL;
const int N = 200010;
LL a[N];
LL n, k;LL gcd(LL a, LL b)
{if (b == 0) return a;else    return gcd(b, a % b);
}bool cmp(const LL &t1, const LL &t2)
{return t1 > t2;
}int main()
{int t;  cin >> t;while (t -- ){scanf("%lld%lld", &n, &k);for (int i = 1; i <= n; i ++ ){scanf("%lld", &a[i]);}sort(a + 1, a + 1 + n, cmp);LL d = a[1] - a[2];for (int i = 3; i <= n; i ++ ){d = gcd(d, a[1] - a[i]);}if ((k - a[1]) % d == 0) puts("YES");else    puts("NO");}return 0;
}

E Nezzar and Binary String

在这里插入图片描述

#include <bits/stdc++.h>
#define lson (pos << 1)
#define rson ((pos << 1) + 1)
using namespace std;const int N = 200010;
int _l[N * 4], _r[N * 4];
int _zero[N * 4], _one[N * 4];
int _lazy[N * 4];
int n, q;
char s[N], f[N];
int l[N], r[N];
bool flag;void pushup(int pos)
{_zero[pos] = _zero[lson] + _zero[rson];_one[pos] = _one[lson] + _one[rson];
}void pushdown(int pos)
{if (_lazy[pos] == -1)   return;else{if (_lazy[pos] == 1){_one[lson] = _r[lson] - _l[lson] + 1;_zero[lson] = 0;_one[rson] = _r[rson] - _l[rson] + 1;_zero[rson] = 0;}else if (_lazy[pos] == 0){_zero[lson] = _r[lson] - _l[lson] + 1;_one[lson] = 0;_zero[rson] = _r[rson] - _l[rson] + 1;_one[rson] = 0;}_lazy[lson] = _lazy[rson] = _lazy[pos];_lazy[pos] = -1;}
}void build(int pos, int l, int r)
{_l[pos] = l, _r[pos] = r;_lazy[pos] = -1;if (l == r){if (f[l] == '0'){_zero[pos] = 1;_one[pos] = 0;}else{_zero[pos] = 0;_one[pos] = 1;}return;}else{int mid = l + r >> 1;build(lson, l, mid);build(rson, mid + 1, r);pushup(pos);}
}void modify(int pos, int l, int r, int x, int y, int tar)
{// all includedif (x <= l && y >= r){_lazy[pos] = tar;if (tar == 0)_zero[pos] = _r[pos] - _l[pos] + 1, _one[pos] = 0;else_one[pos] = _r[pos] - _l[pos] + 1, _zero[pos] = 0;return;}else{int mid = l + r >> 1;pushdown(pos);if (x <= mid){modify(lson, l, mid, x, y, tar);}if (y >= mid + 1){modify(rson, mid + 1, r, x, y, tar);}pushup(pos);}
}void query(int pos, int l, int r, int x, int y, int &num0, int &num1)
{// all includedif (x <= l && y >= r){num0 = _zero[pos];num1 = _one[pos];return;}else{int mid = l + r >> 1;pushdown(pos);int tmp1, tmp2;num0 = num1 = 0;if (x <= mid){query(lson, l, mid, x, y, tmp1, tmp2);num0 = tmp1, num1 = tmp2;}if (y >= mid + 1){query(rson, mid + 1, r, x, y, tmp1, tmp2);num0 += tmp1, num1 += tmp2;}return;}
}int main()
{int t; cin >> t;while (t -- ){// inputscanf("%d%d", &n, &q);scanf("%s%s", s + 1, f + 1);for (int i = 1; i <= q; i ++ ){scanf("%d%d", &l[i], &r[i]);}// initialflag = true;build(1, 1, n);// optfor (int i = q; flag && i >= 1; i -- ){static int num0, num1;query(1, 1, n, l[i], r[i], num0, num1);if (num0 == num1){flag = false;break;}else if (num0 > num1)   // 变成 0{modify(1, 1, n, l[i], r[i], 0);/// printf("(%d, %d)->%d\n", l[i], r[i], 0);}else    // 变成 1{modify(1, 1, n, l[i], r[i], 1);/// printf("(%d, %d)->%d\n", l[i], r[i], 1);}}// Checkif (!flag){// printf("因为之前的不行\n");puts("NO");}else{for (int i = 1; i <= n; i ++ ){static int num0, num1;query(1, 1, n, i, i, num0, num1);if (num0 == 1 && s[i] == '0'){continue;}else if (num1 == 1 && s[i] == '1'){continue;}else{flag = false;break;}}if (flag)puts("YES");elseputs("NO");}}return 0;
}
/*
1
5 2
00000
00111
1 5
1 3
*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python开始之路—基础中的基础

python之路&#xff1a; 基础篇 一、Python 1、python是怎么来的 是在1989年吉多范罗苏姆&#xff0c;在圣诞节的时候闲着无聊自己用C语言开发的&#xff0c;一个脚本解释程序&#xff0c;作为ABC语言的一种继承。 2、有哪些公司在用 Youtube、Dropbox、BT、Quor…

第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛(同步赛)解题报告

第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛&#xff08;同步赛&#xff09; 题目总结 A题 切蛋糕 题目信息 解题思路 如果我们将 1/k展开到二进制的形式&#xff0c;那么就可以计算出 需要 多少块1/(2^i) 蛋糕&#xff0c;因此就可以创建出分割的方案&#xff0c;最后进行…

02.改善深层神经网络:超参数调试、正则化以及优化 W2.优化算法

文章目录1. Mini-batch 梯度下降2. 理解 mini-batch 梯度下降3. 指数加权平均数4. 理解指数加权平均数5. 指数加权平均的偏差修正6. 动量Momentum梯度下降法7. RMSprop8. Adam 优化算法9. 学习率衰减10. 局部最优的问题作业参考&#xff1a; 吴恩达视频课 深度学习笔记 1. Min…

PowerDesigner建数据库模型增加自定义扩展属性

PowerDesigner自7.x新增加一个特性&#xff0c;就是允许用户通过扩展模型的方式扩展模型的属性,但到底怎用一直搞不清楚&#xff0e;今天和同事商量准备直接在程序的Metadata信息实现上直接使用pdm时&#xff0c;我们需要对其进行扩展&#xff0c;因此又碰到这个问题&#xff0…

python初级进阶篇

python之路&#xff1a;进阶篇 一、作用域 在Python 2.0及之前的版本中&#xff0c;Python只支持3种作用域&#xff0c;即局部作用域&#xff0c;全局作用域&#xff0c;内置作用域&#xff1b;在Python 2.2中&#xff0c;Python正式引入了一种新的作用域 --- 嵌套作用域&#…

Educational Codeforces Round 103 (Rated for Div. 2)A~E解题报告

Educational Codeforces Round 103 (Rated for Div. 2) A. K-divisible Sum 原题信息 解题思路 AC代码 #include <bits/stdc.h> using namespace std;typedef long long LL; const int N 100010;int main() {int t; cin >> t;while (t -- ){static LL n, k;sc…

LeetCode 967. 连续差相同的数字(BFS/DFS)

文章目录1. 题目2. 解题2.1 DFS2.2 BFS1. 题目 返回所有长度为 N 且满足其每两个连续位上的数字之间的差的绝对值为 K 的非负整数。 请注意&#xff0c;除了数字 0 本身之外&#xff0c;答案中的每个数字都不能有前导零。 例如&#xff0c;01 因为有一个前导零&#xff0c;所…

android中的简单animation(三)accelerate(加速),decelerate(减速),anticipate,overshoot,bounce...

animation_3.xml: 1 <?xml version"1.0" encoding"utf-8"?>2 <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"3 android:orientation"vertical"4 android:padding"10dip"5 …

02.改善深层神经网络:超参数调试、正则化以及优化 W2.优化算法(作业:优化方法)

文章目录1. 梯度下降2. mini-Batch 梯度下降3. 动量4. Adam5. 不同优化算法下的模型5.1 Mini-batch梯度下降5.2 带动量的Mini-batch梯度下降5.3 带Adam的Mini-batch梯度下降5.4 对比总结测试题&#xff1a;参考博文 笔记&#xff1a;02.改善深层神经网络&#xff1a;超参数调试…

Codeforces Round #697 (Div. 3)A~G解题报告

Codeforces Round #697 (Div. 3)A~G解题报告 题 A Odd Divisor 题目介绍 解题思路 乍一想本题&#xff0c;感觉有点迷迷糊糊&#xff0c;但是证难则反&#xff0c;直接考虑没有奇数因子的情况&#xff0c;即 N 2i2^{i}2i,那么当N ! 2i2^i2i时&#xff0c;就有 奇数因子 注意…

LeetCode 1048. 最长字符串链(哈希+DP)

文章目录1. 题目2. 解题1. 题目 给出一个单词列表&#xff0c;其中每个单词都由小写英文字母组成。 如果我们可以在 word1 的任何地方添加一个字母使其变成 word2&#xff0c;那么我们认为 word1 是 word2 的前身。 例如&#xff0c;“abc” 是 “abac” 的前身。 词链是单词…

LeetCode第45场双周赛-解题报告

LeetCode第45场双周赛-解题报告 A. 唯一元素的和 原题链接 https://leetcode-cn.com/problems/sum-of-unique-elements/ 解题思路 因为数据范围比较小&#xff0c;可以直接模拟&#xff0c;如果出现一次就加上去。 或者是直接map打表也可以 AC代码 暴力 class Soluti…

LeetCode 1034. 边框着色(BFS/DFS)

文章目录1. 题目2. 解题2.1 BFS2.2 DFS1. 题目 给出一个二维整数网格 grid&#xff0c;网格中的每个值表示该位置处的网格块的颜色。 只有当两个网格块的颜色相同&#xff0c;而且在四个方向中任意一个方向上相邻时&#xff0c;它们属于同一连通分量。 连通分量的边界是指连…

Codeforces Round #693 (Div. 3)A~G解题报告

Codeforces Round #693 (Div. 3)A~G解题报告 A Cards for Friends 原题信息 http://codeforces.com/contest/1472/problem/A 解题思路 本题就是一个找 x/2iold,y/2joldx/2^iold,y/2^joldx/2iold,y/2jold, 返回 2i∗2j>n2^i*2^j>n2i∗2j>n 一般这样的题目都需要注…

02.改善深层神经网络:超参数调试、正则化以及优化 W3. 超参数调试、Batch Norm和程序框架

文章目录1. 调试处理2. 为超参数选择合适的范围3. 超参数调试的实践4. 归一化网络的激活函数5. 将 Batch Norm 拟合进神经网络6. Batch Norm 为什么奏效7. 测试时的 Batch Norm8. Softmax 回归9. 训练一个 Softmax 分类器10. 深度学习框架11. TensorFlow作业参考&#xff1a; 吴…

关于整数划分的问题

&#xff08;一&#xff09;递归法 根据n和m的关系&#xff0c;考虑以下几种情况&#xff1a; &#xff08;1&#xff09;当n1时&#xff0c;不论m的值为多少&#xff08;m>0)&#xff0c;只有一种划分即{1}; (2) 当m1时&#xff0c;不论n的值为多少…

LeetCode第 227 场周赛题解

LeetCode第 227 场周赛题解 检查数组是否经排序和轮转得到 原题链接 https://leetcode-cn.com/problems/check-if-array-is-sorted-and-rotated/ 解题思路 直接进行测试就行&#xff0c;因为数组的数据范围很小&#xff0c;直接进行O(N2&#xff09;O(N^2&#xff09;O(…

LeetCode 1124. 表现良好的最长时间段(单调栈/哈希)

文章目录1. 题目2. 解题2.1 单调栈2.2 哈希1. 题目 给你一份工作时间表 hours&#xff0c;上面记录着某一位员工每天的工作小时数。 我们认为当员工一天中的工作小时数大于 8 小时的时候&#xff0c;那么这一天就是「劳累的一天」。 所谓「表现良好的时间段」&#xff0c;意…

二进制如何转十进制,十进制如何转二进制

1 转成二进制主要有以下几种&#xff1a;正整数转二进制&#xff0c;负整数转二进制&#xff0c;小数转二进制&#xff1b; 1、 正整数转成二进制。要点一定一定要记住哈&#xff1a;除二取余&#xff0c;然后倒序排列&#xff0c;高位补零。 也就是说&#x…

02.改善深层神经网络:超参数调试、正则化以及优化 W3. 超参数调试、Batch Norm和程序框架(作业:TensorFlow教程+数字手势预测)

文章目录1. 探索TensorFlow库1.1 线性函数1.2 计算 sigmoid1.3 计算损失函数1.4 One_Hot 编码1.5 用0,1初始化2. 用TensorFlow建立你的第一个神经网络2.0 数字手势识别2.1 创建 placeholder2.2 初始化参数2.3 前向传播2.4 计算损失2.5 后向传播、更新参数2.6 建立完整的TF模型2…