自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 C#混淆心得

混淆的本质就是让代码变丑,让别人看不懂。

2024-03-16 12:09:22 837

原创 C#8.0本质论第十七章--构建自定义集合

迭代器提供了迭代器接口(IEnumerable< T >和IEnumerator< T >)的一个快捷实现。// ...set;要为GetEnumerator()提供一个实现。

2023-12-09 09:53:50 189

原创 C#8.0本质论第十六章--使用查询表达式的LINQ

开发者经常对集合进行赛选来删除不想要的项,以及对集合进行投射将其中的项变成其它形式

2023-12-03 10:58:56 213

原创 C#8.0本质论第十五章--支持标准查询操作的集合接口

集合在C#3.0中通过称为语言集成查询(Language Integrated Query, LINQ)的一套编程API进行了大刀阔斧的改革。通过一系列扩展方法和Lambda表达式,LINQ提供了一套功能超凡的API来操纵集合。本章重点是,它通过直接调用扩展方法来发挥Linq的作用。

2023-12-03 10:40:55 289

原创 C#8.0本质论第十四章--事件

C#允许添加自定义的add和remove块。

2023-11-20 09:14:38 147

原创 C#8.0本质论第十三章--委托和Lambda表达式

C#使用提供类似C++里函数指针的功能。委托允许捕捉对方法的引用。

2023-11-17 10:47:19 140

原创 C#8.0本质论第十二章--泛型

泛型促进了类型安全。编译时类型检查减少了在运行时发生InvalidCastException异常的概率。为泛型类成员使用值类型,不再造成到object的装箱转换。C#泛型缓解了代码膨胀。性能得以提升.内存消耗减少,由于避免了装箱,因此减少了在堆上的内存消耗。代码可读性更好。泛型类或结构的构造函数(和终结器)不要求类型参数。

2023-11-11 11:18:26 347

原创 C#8.0本质论第十一章--异常处理

用关键字throw抛出异常实例,所选的异常类型应该能最好地说明发生异常的背景。发生异常时,会跳转到与异常类型最匹配的catch块执行,匹配度由继承链决定。从C#6.0起,catch块支持一个额外的条件表达式。不是只根据异常类型来匹配,现在可以添加when子句来提供一个Boolean表达式,条件为true时catch块才处理异常。要避免异常条件表达式抛出异常。C#5.0新增了一个机制,允许抛出之前抛出的异常而不丢失原始异常中的栈跟踪信息。这样即使在catch块外部也能重新抛出异常。C#要求代码抛出的任何对象都

2023-11-07 09:58:34 159

原创 C#8.0本质论第十章--合式类型

事实上,CLR对“命名空间”一无所知,类型名称都是完全限定的,其中包含了命名空间。命名空间支持嵌套,以便对类进行层次化的组织。也可以使用完整命名空间名称,每个标识符都以句点分隔。

2023-10-28 15:06:47 294

原创 C#8.0本质论第九章--值类型

C#8.0本质论第九章--值类型

2023-10-22 10:33:00 345

原创 C#8.0本质论第八章--接口

多态性还可以通过接口实现。

2023-10-14 09:34:14 267

原创 C#8.0本质论第七章--继承

派生类型可直接赋值给基类型,这称为隐式转型,总是会成功,不会抛出异常,反之则不成立。从基类型转换成派生类型要求执行,而显式转型在运行时可能失败。完全不相关的类型也能相互转换,关键是要在两个类型之间提供。C#允许包含显式或隐式转型操作符。

2023-09-26 09:21:46 132

原创 C#8.0本质论第六章--类

除了用于代码生成器,另一个常见应用是将每个嵌套类都放到它们自己的文件中。不允许用分布类扩展编译好的类或其他程序集中的类。

2023-09-24 11:32:15 396

原创 C#8.0本质论第五章--方法和参数

方法和参数

2023-09-14 11:30:06 406

原创 C#8.0本质论第四章--操作符和控制流程

C#允许用#region指令声明代码区域。C#允许用#region指令声明代码区域。

2023-08-21 15:07:53 471

原创 C#8.0本质论第三章--更多数据类型

一个类型要么是,要么是。

2023-08-17 01:37:52 297

原创 C#8.0本质论第二章--数据类型

C#的基本数据类型都有关键字与之关联,是特殊的浮点数类型,能存储大数字而无表示错误。

2023-08-08 17:29:45 388

原创 玩你的农场生活有感

你的农场生活有感

2023-08-07 20:51:23 152

原创 C#8.0本质论第一章--C#概述

C#8.0本质论第一章

2023-08-04 23:34:02 369

原创 UE4 限制玩家摄像机视角旋转角度

UE4 如何限制玩家摄像机视角角度

2022-10-29 13:15:31 3540 1

原创 GAMES101现代计算机图形学作业

GAMES101课后作业

2022-07-06 17:59:44 289

原创 GAMES101-现代计算机图形学入门

GAMES101

2022-07-04 16:33:32 786

原创 C++琐碎知识整理

走向掌握C++的必经之路

2022-07-01 10:55:27 747

原创 Educational Codeforces Round 125 (Rated for Div. 2)

Educational Codeforces Round 125 (Rated for Div. 2)A. Integer MovesExampleinput38 60 09 15output102题目大意:问在坐标中,从原点走到一个点最少需要几步,其中,一步的长度必须是整数。思路:数学。该点是原点时,输出0,该点到原点的距离就是整数时,输出1.当该点到原点的距离不是整数时,最少只需要两步就可以走到。以各自两个点为圆心画一个圆,两圆相交的时候,肯定存在这么一个交点,

2022-03-23 21:28:31 163

原创 A. Weird Sum

Codeforces Round #775 (Div. 1, based on Moscow Open Olympiad in Informatics) A

2022-03-21 12:49:38 407

原创 双指针算法

双指针算法一开始我并不知道这是什么算法,只是在很多地方见到过,但这究竟是个什么东西并不清楚。其实,双指针就是指两个数组下标在动而已。双指针的本质就是优化。它可以将O(n*m)的复杂度优化成O(n+m).1.先写出朴素的暴力做法,一般是两个for,复杂度是n^2.2.然后看看求解的问题是否具有单调性。我理解的单调性是指,在符合答案要求的情况下,两个指针移动的方向是单调的,i和j不会先往右走再往左走。板子:for(int i=0;i<n;++i){ while(check(i,j))

2021-09-07 19:02:20 226

原创 第1节 枚举(尺取法、前缀和、差分等)、贪心

牛客算法竞赛入门班第1节 枚举(尺取法、前缀和、差分等)、贪心1.2 糖糖别胡说,我真的不是签到题目题目:示例1输入1 4 3 0 3 1 2 0 3 1 1 1 3 4输出3题目大意:(题面真的垃圾,连中文语法都不会)有n个人,每个人属于第0组或第1组,且有一个能力值b,他们站成一排,第i秒时,第i个人可以消灭所有排在他前面且能力值比他小且与它不同组的人。某人的爸爸会操作m次,比如操作c,则在第c秒结束后,b1,b2 … c都增加1,求最后有多少人存活。思路:

2021-09-03 15:01:58 385

原创 一次TLE的教训

一次TLE的教训在CF上刷题的时候,遇到一道数据很大的题。https://codeforces.com/edu/course/2/lesson/2/3/practice/contest/269118/problem/Bn可以取到3e5,我用O(N*log(N))完全能过的,但是…我不理解,刚开始我以为是有个特例让我二分死循环了,然后我对拍了无数次,跑的都挺快的,我试着限制二分次数break掉,还是TLE,这说明是程序复杂了。尝试了很多种办法,比如记忆化,更快的快读,不开long long等…后来

2021-08-03 18:09:31 244 1

原创 C. Three displays

C. Three displaysExamplesinput52 4 5 4 1040 30 20 10 40output90input3100 101 1002 4 5output-1input101 2 3 4 5 6 7 8 9 1010 13 11 14 15 12 13 13 18 13output33动态规划:定义状态:f [ i ] [ j ] ,表示以i结尾,长度为j的串中花费的最小费用。状态转移:f [ i ] [2 ]=min(

2021-06-17 12:51:47 79

原创 Codeforces Round #725 (Div. 3)

Codeforces Round #725 (Div. 3)A. Stone GameExampleinput551 5 4 3 282 1 3 4 5 6 8 784 2 3 1 8 6 7 543 4 2 142 3 1 4output24532题目大意:给你一个数组(1-n每个数出现一次),你每次只能从最左或最右边删掉一个元素,求最少步数删除最大值和最小值。思路:贪心,先找出最大值和最小值的位置,答案就是:只从左边删,只从右边删,从左右两边删 里的

2021-06-12 22:28:34 394

原创 C. Unstable String

C. Unstable StringExampleinput30?10????10??1100output8625这题题意有点难理解,看了好几遍,后面官方补充了说明之后才看懂。。题目大意:给一个只包含0,1,?的字符串,求它的所有满足要求的子串数量。要求:字符串01010…交替,问号可看作0也可看作1。思路:动态规划。定义状态:f[a] [b]表示当第a个位置取b时,a做出的贡献。状态转移:当位置a是0时,它的贡献数是前一个字符是1时的贡献数+1,即f[a] [0

2021-06-05 20:26:12 397

原创 B. One Bomb

B. One BombExamplesinput3 4.*.......*..outputYES1 2input3 3..*.*.*..outputNOinput6 5..*....*..*****..*....*....*..outputYES3 3题目大意:在坐标上放一个炸弹,使这一行和这一列的墙都炸掉,判断是否有这么一个炸弹可以刚好炸完地图上全部的墙。如果有则输出YES和坐标,否则输出NO。思路:刚开始看到感觉可以用dfs,实

2021-06-04 11:37:33 82

原创 Codeforces Round #723 (Div. 2)

Codeforces Round #723 (Div. 2)A. Mean InequalityExampleinput331 2 3 4 5 62123 456 789 1016 9output3 1 4 2 5 6123 10 456 7899 6题目大意:给一个2 n长的元素不重复的数组,任意交换位置,使得任一元素的左右两元素之和不等于本身的两倍,求这个新的数组。思路:先从简单的看起,假设a<b<c 或c<b<a, a+c=2 b,那

2021-05-29 16:22:24 231

原创 B. Equalize Prices

B. Equalize PricesExampleinput45 11 1 2 3 14 26 4 8 52 21 63 55 2 5output26-17题目大意:给一个数组,可以把每个元素的值改成[a-k,a+k]以内,使得每个元素相等,求最大值。思路:这题虽然只有900的难度,但很有意思,它可以用不止一种方法做(感觉cf上的题大多都有这种特性)。我首先想到的是二分…第二种是思维+数学,因为要让所有数最后都变成一样,所以只需要考虑最大和最小的值之差,是

2021-05-28 11:16:50 125

原创 D. Maximum Sum of Products

D. Maximum Sum of ProductsExamplesinput52 3 2 1 31 3 2 4 2output29input213 372 4output174input61 8 7 6 3 65 9 6 8 8 6output235题目大意:给两个数组a,b,可以翻转一次a中的一个子数组,求两数组对应数的积之和最大值。思路:看n最大才5000,所以可以暴力一点O(n*n)。枚举每一种交换的情况,取最大就行了。代码:#inc

2021-05-26 23:14:40 106

原创 Codeforces Round #722 (Div. 2)

Codeforces Round #722 (Div. 2)A. Eshag Loves Big ArraysExampleinput361 1 1 2 2 369 9 9 9 9 966 4 1 1 4 1output303题目大意:给一个数组,让你选几个元素,然后删掉比这几个元素平均值大的元素。求最多你能删掉的元素个数。思路:贪心,直接选择最小的数,然后不等于这个的数全部删掉。代码:#include<algorithm>#include&lt

2021-05-25 16:37:44 129

原创 Codeforces Round #721 (Div. 2)

Codeforces Round #721 (Div. 2)A. And Then There Were KExampleinput32517output1315题目大意:给一个正整数n,求最大的k,使得 n & (n−1) & (n−2) & (n−3) & … (k) = 0思路:就假设n为17,二进制为10001,我们来模拟一下求解过程。17 1000116 1000015 01111因为按位与的特点就是,一位上只要有一个0,

2021-05-21 12:37:24 223

原创 B. Nastia and a Good Array

B. Nastia and a Good ArrayExampleinput259 6 3 11 1537 5 13output21 5 11 92 5 7 60题目大意:给一个数组,每次选择两个下标i,j和两个正整数x,y,下标对应的两个数的最小值和两个正整数x,y的最小值相等,最终使得数组相邻两个数的gcd都为1,求操作次数 和 操作过程(输出i,j,x,y).思路:题目不是要求最小操作次数,所以可以暴力一点。gcd(x,x+1)一定等于1,所以找到数组中最小值,

2021-05-19 15:45:49 166 1

原创 E. Restoring the Permutation

E. Restoring the PermutationExampleinput473 3 4 4 7 7 741 2 3 473 4 5 5 5 7 711output3 1 4 2 7 5 6 3 2 4 1 7 6 5 1 2 3 4 1 2 3 4 3 4 5 1 2 7 6 3 4 5 2 1 7 6 1 1 题目大意:给一个非严格升序的数组,替换第一次出现后后面再出现的重复数字,使得1-n的每个数字只出现一次,分别求字典序最大和最小的序列。思

2021-05-18 15:07:01 91

原创 D. Epic Transformation

D. Epic TransformationExampleinput561 6 1 1 4 421 221 154 5 4 5 462 3 2 1 3 1output00210题目大意:一个数组里,可以同时删去两个不同位置的数,求数组最小长度思路:统计每个数字出现的次数,只要最多的次数小于或等于后面的次数之和,最后要么剩下一个,要么不剩。如果大于,最后一定会剩下次数最多的那个数。难点:用map统计每个数字出现的次数,再根据值排序,因为map不能这样做,所以先

2021-05-17 23:24:13 211 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除