nlog

【解题总结】2020 CCPC 网络选拔赛

北城以北 提交于 2020-10-07 05:16:53
1010 Reports 签到,略。 1003 Express Mail Taking 简单贪心,先往右边走,然后逐步往左边走。 1007 CCPC Training Class 答案就是出现次数最多的字符出现的次数。 1011 3x3 Convolution 容易发现只有当 K 1 , 1 = 1 K_{1, 1} = 1 K 1 , 1 ​ = 1 时输出和原矩阵相同,否则一定会收敛到 O O O 。 1006 Robotic Class 题意 :定义 n n n 个分段函数,每个函数形如 f ( t , x ) = { f ( d t , 0 , c t , 0 x + b t , 0 ) x ≤ a t , 0 f ( d t , 1 , c t , 1 x + b t , 1 ) a t , 0 < x ≤ a t , 1 ⋮ f ( d t , k t − 1 , c t , k t − 1 x + b t , k t − 1 ) a t , k t − 2 < x ≤ a t , k t − 1 f ( d t , k t , c t , k t x + b t , k t ) a t , k t − 1 < x f(t, x) = \begin{cases} f\left(d_{t, 0}, c_{t, 0}x +b_{t, 0}\right)& x \le a_

CDQ分治学习笔记

半城伤御伤魂 提交于 2020-10-06 07:03:20
一层CDQ分治能将动态问题转化为静态问题, 对约束条件进行简化。 求解$n$维偏序。 对于每一个$n$元组$(a, b, c, d, ...)$。 首先按照a维排序, 问题就转化为了动态的$n-1$维偏序。 此时的$n - 1$元组$(b, c, d, ...)$包含查询/修改两个操作。 然后对序列进行CDQ分治,即保证$a$维/时间有序, 使其变成了静态的$n-1$偏序。 每次只需考虑左子区间的修改对右子区间的查询的影响。 嘿嘿嘿, 又是一个静态问题。 再按照b维排序, 又变成了动态的$n - 2$维偏序。 就这样套娃, 在问题成为2维偏序时直接解决就行了。 每套一次CDQ分治都会多个 log , 所以$k$维偏序时间复杂度应为$O(nlog^{k - 1}n)$ 蒟蒻感觉CDQ套CDQ比内层数据结构如 BIT 的代码更加优美 (逃 但好像要慢一些…… 下面就给出三维偏序的代码吧:) 1 #include <cstdio> 2 #include <algorithm> 3 4 const int N = 100000 ; 5 6 struct Node { 7 bool opt; 8 int a, b, c, Cnt, Ans, Loc; 9 } S1[N + 10 ], S2[N + 10 ], S3[N + 10 ]; 10 11 int Tot[N + 10 ], n, L

2020CSP-J3

亡梦爱人 提交于 2020-10-05 09:08:25
2020CSP-J3 一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项) 1、文件型病毒传染的主要对象是() A.文本文件 B.系统文件 C.可执行文件 D. .EXE 和.COM文件 2、24 针打印机的分辨率约为180dpi. Dpi 数越大,打印精度越高。其中单位dpi是指() A.印点/厘米 B.印点/毫米 C.印点/英寸 D.印点/寸 3、内存地址的最重要特点是() A.随机性 B.唯一性 C.顺序性 D.连续性 4、多媒体计算机是指() A.具有多种功能的计算机 B.具有多种外设的计算机 C.能处理多种媒体的计算机 D.能借助多种媒体操作的计算机 5、最早的计算机的用途是用于() A.科学计算 B.自动控制 C.系统仿真 D.辅助设计 6、CPU中()机构相当于运算器中的一个存储单元,它的存取速度比存储器要快得多。 A.存放器 B.辅存 C.主存 D.寄存器 7、计算机软件我们一般指的是() A.系统软件和实用软件 B.实用软件和自由软件 C.培训软件和管理软 D.编辑软件和科学计算软件 8、操作系统在第几代计算机开始应用() A.第一代 B.第二代 C.第三代 D.第四代 9、计算机中的数有浮点与定点两种,其中用浮点表示的数,通常由( )这两部分组成() A.指数与基数 B.尾数与小数 C.阶码与尾数 D.整数与小数 10

Grakn Forces 2020 A-F 简要题解

陌路散爱 提交于 2020-10-04 09:57:03
G r a k n F o r c e s 2020 A − F \mathrm{Grakn\ Forces\ 2020 A-F} G r a k n F o r c e s 2 0 2 0 A − F 简要题解 Grakn Forces 2020 注:若题目为多组数据 n n n 表示 ∑ n \sum n ∑ n A 由于题目保证 a i ≠ b i ≠ c i a_i ≠ b_i ≠ c_i a i ​  ​ = b i ​  ​ = c i ​ 所以直接逐位判断选什么即可,时间复杂度 O ( n ) O(n) O ( n ) code B 贪心地加数,直至这个序列不能加数增加一个序列,模拟一遍即可,时间复杂度 O ( n ) O(n) O ( n ) code C 我们考虑二分时间 t t t ,然后分别模拟左端点与右端点在 t t t 秒后的位置如果 r ≤ l r\leq l r ≤ l 则表示这个 t t t 是合法的。时间复杂度 O ( n log ⁡ n ) O(n\log n) O ( n lo g n ) code D 我们考虑 dp。 f i f_i f i ​ 表示向左移动 i i i 至少像上移动几格。最后从后往前取一遍 max。那么 a n s = min ⁡ i = 1 1 0 6 f i + i ans=\min\limits_{i=1}^

HEOI2020 退役记 & 退役划水(3)

∥☆過路亽.° 提交于 2020-10-01 00:07:36
快开学了。再咕就真没时间写了。 赶上$NOI$,然后又赶上其它一大堆事情,突然感慨就涌上来了。 说是退役记,其实大概就是发牢骚吧。 所以含有不少负面情绪,慎读。 我可警告完了啊,别让我坏了你心情( 当个笑话看吧。 下面这些一部分内容是省选结束后那几天写的,可能有点和现在不匹配,不要在意细节。 我多希望这个标题只是我在$fake$啊。。。 $Day -4:$ 本来在快乐的刷专题,突然$gzh$告诉我: 啊,啥,$HEOI$没了? 当时半信半不信的吧心态没什么波动。 过了大约两个小时全机房都知道了。其实还是不算太慌的。 回宿舍的基本还在调侃这事,啊退役了退役了,好像是笑着说出来的。 然而晚上就没有打题了,去uoj搞那个乱搞杯赛研究各种耗时间的题了。 晚上回宿舍突然想了不少,但貌似看的还挺开。 $Day-3:$ 计算几何专题。人都傻了。 然后早上教练认同了$HEOI$没了的事情。 然后$luogu$上$*ainy\ Chen$大神开始为没有省选而开心(联赛分的确不低) 然后被我们一顿爆怼,后来被他自己的同学一顿爆怼。 为了喷他所有人都把$luoguID$中的$hzoi$前缀删掉了。 这货来了一句: 你以为你真的能翻盘? 早饭路上: $akt:$迪哥为啥看他们反应都挺激动的为啥你都没有不开心啊。 我:是吗?我不知道啊。 的确不知道为什么心态没有特别崩。但当然没有不开心是不可能的。

为什么排序的复杂度为 O(N log N)

主宰稳场 提交于 2020-09-29 21:55:49
基本上所有正而八经的算法教材都会解释像快速排序quicksort和堆排序heapsort这样的排序算法有多快,但并不需要复杂的数学就能证明你可以逐渐趋近的速度有多快。 关于标记的一个严肃说明: 大多数计算机专业的科学家使用大写字母 O 标记来指代“趋近,直到到达一个常数比例因子”,这与数学专业所指代的意义是有所区别的。这里我使用的大 O 标记的含义与计算机教材所指相同,但至少不会和其他数学符号混用。 基于比较的排序 先来看个特例,即每次比较两个值大小的算法(快速排序、堆排序,及其它通用排序算法)。这种思想后续可以扩展至所有排序算法。 一个简单的最差情况下的计数角度 假设有 4 个互不相等的数,且顺序随机,那么,可以通过只比较一对数字完成排序吗?显然不能,证明如下:根据定义,要对该数组排序,需要按照某种顺序重新排列数字。换句话说,你需要知道用哪种排列方式?有多少种可能的排列?第一个数字可以放在四个位置中的任意一个,第二个数字可以放在剩下三个位置中的任意一个,第三个数字可以放在剩下两个位置中的任意一个,最后一个数字只有剩下的一个位置可选。这样,共有 4×3×2×1=4!=24 种排列可供选择。通过一次比较大小,只能产生两种可能的结果。如果列出所有的排列,那么“从小到大”排序对应的可能是第 8 种排列,按“从大到小”排序对应的可能是第 24 种排列,但无法知道什么时候需要的是其它 22

ASP.NET Core 2.0 MVC项目实战

一个人想着一个人 提交于 2020-09-28 13:50:17
一、前言 毕业后入职现在的公司快有一个月了,公司主要的产品用的是C/S架构,再加上自己现在还在学习维护很老的delphi项目,还是有很多不情愿的。之前实习时主要是做.NET的B/S架构的项目,主要还是用的那种传统的开发模式,只有一个项目用到了Web API,自己负责后端的接口功能实现。既然现在没办法改变现状,那就先改变自己吧。定了个计划,下班后慢慢的开始学习ASP.NET Core Web API和Vue,准备从前端到后端自己写一个小项目玩玩,毕竟代码这个东西,时间长了是会忘的。 嗯,有点扯远了。这个MVC项目是我的毕业设计,虽然写的比较烂,而且当时为了赶紧写完,代码的冗余程度有点高,但还是希望能给一些准备入门ASP.NET Core MVC的童鞋提供些借鉴吧。代码我放到Github上了,源码地址 https://github.com/Lanesra712/Danvic.PSU ,欢迎大神们拍砖,指出不足处。 二、项目介绍 毕业论文的课题是一个大学生的一个报名系统,主要是为了完成大学生报名过程中的一些数据维护,当然最后因为实在来不及了,好多都没做。。。项目主要使用到的相关技术如下所示: 项目框架:ASP.NET Core 2.0 MVC ORM:Entity Framework Core(使用Code First) 数据库引擎:MySQL SERVER 5.7 权限验证

万字长文总结八大经典内部排序算法

旧时模样 提交于 2020-09-24 17:55:15
写在前面 :博主是一位普普通通的19届双非软工在读生,平时最大的爱好就是听听歌,逛逛B站。博主很喜欢的一句话 花开堪折直须折,莫待无花空折枝 :博主的理解是头一次为人,就应该做自己想做的事,做自己不后悔的事,做自己以后不会留有遗憾的事,做自己觉得有意义的事,不浪费这大好的青春年华。博主写博客目的是记录所学到的知识并方便自己复习,在记录知识的同时获得部分浏览量,得到更多人的认可,满足小小的成就感,同时在写博客的途中结交更多志同道合的朋友,让自己在技术的路上并不孤单。 目录: 1.冒泡排序 2.选择排序 简单选择排序 树形选择排序 3.堆排序 4.插入排序 直接插入排序 折半插入排序 2-路插入排序算法 表插入排序 5.希尔排序 6.快速排序 7.归并排序 8.基数排序 9.总结 本篇博客部分图片及代码参考 一文总结十大经典排序算法(思维导图 + 动图演示 + 代码实现 C/C++/Python + 致命吐槽) 1.冒泡排序 两两比较,把较大的数放在后面,每一轮循环循环结束会找出一个最大值,完成排序 //C void swap ( int * a , int * b ) { int temp = * a ; * a = * b ; * b = temp ; } void bubble_sort ( int arr [ ] , int len ) { int i , j , temp ;

How to set NLog max file size?

狂风中的少年 提交于 2020-08-24 06:43:06
问题 Is there any option/configuration in NLog to set the max log file size (for example 5MB)? What I need is, that when the log file exceeds the max size (which I define), It will backup the old one (with a time stamp as file name), and start writing to a new one. How can this be done? I would prefer some kind of build-in configuration, but if there is none can this be done safely manually without corrupting the log file? 回答1: You can set archiveNumbering="DateAndSequence" and archiveAboveSize=

HDU 2020 多校第七场 游记

感情迁移 提交于 2020-08-20 09:01:38
又是被 djq 带飞的一场 orz,终场 rk2,又是罚时被锤了 1001,1002 俩 hard 先略过,不会做 /ll 1003 这种数数神题被 djq 一眼秒了,我还能说什么…… 首先我们考虑合法的 A A A 满足什么性质,如果 A A A 中的第 i i i 个数 A i A_i A i ​ 满足它是前缀非严格最大值(前面可以和它相等但不能比他大),那么就在 i − 1 i-1 i − 1 和 i i i 之间切一刀,这样会把 A A A 划分成若干个小段。 我们考虑合并一些小段,让合并之后的一个段中,每个数字都出现恰好两次,并且让这样的段尽量多。记合并之后段的集合为 S S S 。 考虑一个会算重的做法,即区分 A A A 中的每个数字来自于哪个排列,那么显然从 n n n 到 1 1 1 倒着插一遍即可。具体的,假设当前插入两个排列中的 i i i ,首先它们可以作为开头或者分别插入和它来自于同一个排列的某个数后面。并且,如果两个都想作为开头,那么就有两种顺序。因此方案数为 ( n − i + 1 ) 2 + 1 (n-i+1)^2+1 ( n − i + 1 ) 2 + 1 。把所有数字乘起来即可,即 ∏ ( i 2 + 1 ) \prod(i^2+1) ∏ ( i 2 + 1 ) 。 考虑这个东西会算重多少次, S S S 中的每个段