- 博客(29)
- 收藏
- 关注
原创 UESTC 1019 SSRaligun酱的魔法符文 用记忆实际区间最左min1最右max1来减小时间复
摘要:本文介绍了一种优化算法时间复杂度的记忆区间方法,通过维护区间最左min1和最右max1来减少无效遍历。关键点包括:1)正确的初始化min1为可能最大值,max1为可能最小值;2)处理多种魔法符文融合的复杂逻辑,特别是elseif嵌套时的注意事项;3)实现了一个1×n矩阵的m次填充操作,并根据特定融合规则计算最终各类型符文数量。算法使用记忆区间[min1,max1]来优化统计过程,避免全数组扫描,适用于n,m≤2000的规模。文末还提供了样例输入输出和完整实现代码。
2025-07-31 23:08:11
701
原创 UESTC 65 CD Making 贪心法
题目要求计算将N首歌刻录到CD上的最少数量,每个CD最多容纳K首歌且不能恰好装13首。当K=13时,采用每张12首的策略;当K=14时,若剩余13首需额外增加CD。其他情况直接按最大容量分配即可。例如:5首歌K=2需3张CD;13首歌K=13需2张CD(12+1)。解题关键在于处理K=13和14的特殊情况。
2025-07-31 23:04:32
812
原创 UESTC 1033 Marineking wilyin
摘要:本文讨论了一个几何问题,给定三个组成直角三角形的点,如何找到第四个点使之与前三个点构成矩形。通过数学推导,利用向量点积确定直角顶点,并给出了坐标计算公式。文中提供了C++实现代码,通过交换坐标位置确保直角顶点正确,最终输出第四个点的坐标。该解法适用于坐标绝对值不超过3000的情况,展现了数学原理在编程问题中的应用。
2025-07-31 23:03:05
301
原创 UESTC 1013 我的魔法栈 贪心法
这篇文章描述了一道关于魔法栈的编程问题。zentorwie希望通过使用特定魔法将栈中的球全部变成黑色,每次施法会将最顶端的白球变黑,但会将其上方的球全部变白。问题要求计算将所有球变成黑色过程中发生的颜色变化总次数。输入包含多组测试数据,每组给出栈大小和初始球颜色序列。通过分析发现,每个白球的位置决定了其贡献的变化次数为2^i-1(i为位置索引),最终将所有白球的贡献相加即可得到答案。文章还提供了样例输入输出和解题提示,展示了如何通过快速幂计算2的幂次来优化求解过程。
2025-07-30 21:30:15
510
原创 链表-单向链表&&UVa 11988 Broken Keyboard(a.k.a.Beijiu Text)(破损的键盘(悲剧文本))的理解与解析
C++11新增的forward_list单向链表容器虽优化了性能,但在追求极致效率时仍建议手写实现。文中以UVa11988破损键盘问题为例,展示了通过数组模拟链表处理文本输入的高效解法:使用三个数组分别记录字符、光标位置和下一个节点,通过遍历处理'['和']'特殊字符实现文本重组。该方法避免了动态内存分配,时间复杂度为O(n),适用于大规模数据。标准库容器虽性能优异,但在特定场景下手写数据结构能获得更优的时间和空间效率。
2025-07-30 21:27:24
546
原创 栈对于表达式求值的特殊作用&&UVa442 Matrix Chain Multiplication(矩阵链乘)的理解与解析
本文介绍了栈在表达式求值中的应用,特别是矩阵链乘法问题。通过栈结构可以高效处理表达式的括号顺序,计算矩阵相乘所需的基本乘法次数。文章解析了UVa 442题目,给出了基于栈的解决方案:当遇到字母时压入矩阵,遇到右括号时计算栈顶两个矩阵的乘法次数,若维度不匹配则报错。代码示例展示了如何用栈实现矩阵链乘法的计算过程。该算法能有效处理带括号的矩阵乘法表达式,正确计算总乘法次数或识别维度错误。
2025-07-29 22:55:21
953
原创 stack&&UVa514 Rails (铁轨)的理解与解析
摘要:本文解析了UVa514 Rails问题,该问题要求判断火车车厢能否通过栈结构按指定顺序重组。输入包含多个测试块,每个块给出车厢数N和目标排列。解决方案使用栈模拟过程:若当前车厢符合目标顺序则直接通过,否则入栈;栈顶符合时出栈。若最终能按目标顺序出站则输出"Yes",否则输出"No"。代码通过维护栈和指针实现了这一逻辑,为ACM/ICPC竞赛中的经典栈应用问题。
2025-07-29 22:50:40
868
原创 UVa12100 Printer Queue (打印队列)
该文章描述了一个打印机队列问题的解决方案。输入包含多组测试用例,每组给出队列中的任务数量n、目标任务位置m,以及各任务的优先级。需要通过模拟打印过程,计算目标任务完成所需时间。作者使用C++中的deque实现队列处理,通过比较队首元素与后续元素的优先级来决定打印顺序,并记录目标任务完成时的总时间。代码中特别处理了目标任务位置移动的逻辑,确保正确跟踪目标任务状态。该解决方案适用于ACM编程竞赛场景,展示了队列处理的基本算法思想。
2025-07-29 22:18:07
242
原创 ProLightsfx新的出发–从CSDN到WordPress
之后应该不会在csdn发布分享文章了,老的文章大概隐藏掉了300多篇,保留了60多篇。临别之际,感谢csdn,感谢有你!
2024-11-02 00:53:34
520
原创 对于短期有望暴涨的标的股票,短期牛市对角价差策略
一、前提:1、首先对于大股票像baba gg Amazon 等,看纯粹的溢价百分比意义不大,也需要关注绝对值。2、费用:美式期权。平台使用费15. 交易费 每张3, 佣金 0.3%左右3、由于短期,故忽略利息和股息的影响。二、策略:买入短期实值call。卖出中期虚值call由于中期虚值的时间价值要比短期实值的时间价值高的多,从而产生了更多的下行保护。...
2020-05-07 12:33:49
1483
1
原创 2019 全新出发,回顾在腾讯实习的八个月
已经过去的2018年对于我来说是非常重要的一年,这一年我实现了从学校走向工作岗位的跨越,实现了从学习理论知识到实际应用的跨越,感谢我的导师shenquan,感谢carbon和华明,谢谢三位大大带我飞。 2018年三月,一个很偶尔的机会,腾讯这边邀请我们uestc拿过acm金奖的几个同学来深圳腾讯总部参观,报销来去机票,免费住五星级酒店。当时是大三下学期,还在准备保研,同时考虑要不...
2019-02-12 15:39:53
2228
2
原创 退役了,永远的ACMer,永远的ProLights
三年从一个什么都不懂的小司机成为了金牌在手的大司机,现在退役又变成了退役司机了。加入uestc-acm集训队大家庭,这三年来学了很多,感谢uestc-acm,感谢我的历届队友cx大爷、钟司机、nardo 、CS_LYJ1997、LinPC、SummerW 、谕大爷、谭爷。虽然退役了,但我们永远都是电子科大acm集训队队员。但是经过 腾讯的2轮技术面试+1轮HR面+1轮T4专家面 成功的拿到了腾讯提前批的实习offer,我觉得我的team leader carbonzhang很不错很强大,他给我面试的时候,
2018-03-25 12:45:19
1355
原创 第42届ACM国际大学生程序设计竞赛 亚洲区域赛 西安站 总结
今年暑假集训结束的时候我们队在UESTC-ACM Div.1里排名第6,所以获得一场ICPC和一场CCPC的现场赛资格。由于上半年5月打过西安的邀请赛并取得了一块银牌,笔者那次毕竟是第一次打区域赛级别的现场赛并且拿到银牌还是很欣慰的,所以对西安站挺有好感的,于是打区域赛的时候还是选择了西安站。------启程 2017-10-27本来是16:10的火车,但是稍微在路上耽搁了
2017-10-31 19:57:05
5509
2
原创 Codeforces Round #404 (Div. 2) C. Anton and Fairy Tale 贪心+二分
题意:初始是n,每次放入m,然后拿走i, n' = max(n, n' + m),问i为多少的时候剩余的数为0.贪心+二分首先如果 m >= n 则ans = n;否则贪心,前m天,必定是拿完之后就重新填满的,这个时候剩余 n -= m;然后对这个新的n进行二分,找到最大的cnt,使得 (cnt + 1)*cnt / 2
2017-03-16 01:29:18
1197
1
原创 第八届ACM趣味程序设计竞赛第三场(正式赛)官方题解
UESTC 第八届ACM趣味程序设计竞赛第三场(正式赛)题解若有疑问建议先看题解然后自己代码实现,实在不行再看文章最后的标程A - 渐变字符串B - 保护果实C - Little_Pro的driver朋友们和他的魔法D - 扑克斗争E - shallowdream and girl
2016-12-11 17:01:14
10525
原创 Codeforces Round #382 (Div. 2) D. Taxes 数论、哥德巴赫猜想
题意:给定一个数n,n可以分成k个数的和(ni >= 2 , sum{ni} == n, k 可以为 1),花费为ni的除本身外的最大因数,求花费和的最小值。数论、哥德巴赫猜想任意大于2的偶数可以拆分为两个质数之和然后2是素数所以ans = 1;当n 为 奇数时判断是否为素数,如果是素数则 ans = 1;如果不是,则判断 n - 2是否为素数,如果是则可以把n拆成一个素数和2 ans = 2;否则只能拆成一个素数+一个大于2的偶数 ans = 3;复杂度 O(sqrt(n))
2016-11-28 03:11:09
1260
1
原创 Codeforces Round #376 (Div. 2) F. Video Cards 数论+数据结构+前缀和
数论+数据结构+前缀和就是以前用树状数组的感觉,比如有一个数x,就在以x为下标的地方插入一个 1,如果删除这个就在下标为x的地方插入一个-1, 这样要查询小于等于k的数的个数只要get(k)就好。这里不需要维护,所以只要用一个前缀和数组,就可以直接预处理出来。即对于每个a[i]就在 sum[a[i]]++;读入完以后预处理出前缀和,for i = 1 ~ maxa, sum[i] += sum[i - 1];然后扫一遍i = 1 ~ maxa,对于每个i在a[maxn]数组中出现过的i,(即 s
2016-10-22 12:56:44
1461
1
原创 Codeforces Round #376 (Div. 2) C. Socks 并查集+贪心、图论
并查集+贪心、图论在读入的时候直接把有边相连的点维护到一个集合里,最后对于处理出的森林,可以用map mp;维护,即mp[i][j]表示以 i 为根的树上颜色 j 出现的次数,然后对于每颗树,找出树上出现的次数最多的结点颜色相同的颜色, ans += (该树的总结点数) - 出现的次数最多的结点颜色相同的颜色的结点个数复杂度 O(n)
2016-10-22 12:31:39
1210
1
原创 Codeforces Round #372 (Div. 2) D. Complete The Graph 图论、最短路、Dijkstra、路径、分配部分边权
图论、最短路、Dijkstra、路径、分配部分边权首先去点2种不可能的情况:1、不记录w == 0 的边的情况下,求出dis[e], 如果 dis[e] < L, 则 w == 0 的边无论怎样分配权值,src 到 e 的最短路 都是这个 dis[e], ans = “NO";2、把w == 0 的边赋值为1,然后把这些 w == 0的边记录下来,跑一边 Dijkstra,如果 dis[e] > L, 则 由于 w > 0 即 w >= 1, 则无论怎样dis[e] 都大于 L, ans = ”NO“
2016-09-23 19:07:27
1701
1
原创 Codeforces Round #340 (Div. 2) D. Polyline 计算几何,折线
几何,折线题意 给出3个点的坐标, 用折线把3个点连起来,要求每个线段 parallel to the coordinate axes(平行于坐标轴),然后线段没有交叉 和 self-touches(可能是说不能成环), 求出需要的最小的线段个数所以, 如果(x1 == x2 && x2 == x3) || (y1 == y2 && y2 == y3) 则可以一条线段 如果 (x1 == x2) || (x2 == x3) || (x1 == x3) || (y1 ==
2016-09-01 01:39:18
1182
1
原创 大一,流光,清零
人生天地之间,若白驹之过隙,忽然而已。大一又飞逝而去,但还好并未虚度光阴,俯看这一年,多多少少有所收获,也遭遇了一些失败。大一是大学的起点, 将奠定接下来几年的大致走向,幸运的是, 在这期间我并没有彷徨与迷茫,因为我是带着明确的目的来的这所学校。我知道我在这期间该去收获些什么。 大一的时候带着高中的热情踏入校园, 寻找着梦想的足迹。大学是新的的起点,一切都是新的开始, 要以一个既要仰望星空又要脚踏实地的姿势,开始一段新的旅程。......程序该被他的内部逻辑而非外部表现所指引,我们所钟爱的
2016-08-27 14:32:04
1141
1
原创 Moscow Subregional 2010 Problem K. KMC Attacks 交互题、队列优化、枚举
交互题 队列优化用 lCur 和 uCur记录 机器的运行路径, 然后枚举起点就好其中WA5, 后来发现要记录最大的和最小的 lCur, uCur, 以为可能中间过程越界然后就开始TLE了尴尬后来才想到队列优化因为本来是一个vis[][]布尔数组来记录有没有枚举过那个起点, 但每次要forfor枚举然后用vis[][]判断, 这样可能是 4*1e4步内的化, 可能要接近 4*1e4 * (200 * 200) == 4* 1e8了显然还是超时的 所以队列优化可以 O(n^4)的复杂度降低到 O(
2016-08-10 00:16:20
1196
2
原创 URAL 2099 Space Invader 计算几何、卡精度、好题
先判断是否有向来垂直然后判断 A到CD的距离 > B到CD的距离, 而且D到AB的距离 > C到AB的距离然后判断是否 A B在CD的两边, 以及C、D是否在AB的两边最后判断是否在一个平面, 用线性代数的方法写的很辛苦, 写到后来, 自己都怕, 万一那个地方写错, 可能短时间内不大找的出来然后就是最后判断 double 的相等的时候 把 a == b 搞错 fabs(a - b) < 1e-6 或者更精确的eps
2016-07-28 01:50:29
2103
2
原创 2016“百度之星“ - 资格赛(Astar Round1) Problem D 简单题
做一个题就可以进初赛,所以挑了个简单的题做了下,还是TLE 了好几次 汗, 然后用string sort 936ms 卡过 (┬_┬)试了map+bitset, 用不了,试了自己搞个数组+map, 用不了然后用string初始化为200多个0,然后每个字母就变成1,TLE, 而且 显然也不对然后用直接字符串读取进来, 然后用map 结果超时了然后突然想到了,string 也可以排序, 这样用map[string]++, 才来个卡过题目虽然是简单题,但还是有所收获,毕竟新手嘿嘿
2016-05-16 01:52:54
4654
2
原创 Topcoder SRM 687 (Div 2) 500.Quacking __ string matches
Ducks have started mysteriously appearing in your room. All ducks make the same sound: "quack". Each duck makes the sound one or more times, one after another. For example, valid sounds for a single duck are "quack", "quackquackquackquack", "quackquack", e
2016-04-15 01:34:59
3262
1
原创 Topcoder SRM 687 (Div 2) 250.Quorum __ sort
In one organization they have n different committees. The organization has a very large number of employees. Each employee is a member of each committee.Each committee has a quorum: the smallest number of members that have to be present to have an officia
2016-04-15 01:30:59
2230
原创 deque双端队列&&UVa210 Concurrency Simulator(并行程序模拟)的理解与解析
deque双端队列&&Concurrency Simulator(并行程序模拟)的理解与解析deque 双端队列支持快速随机访问。在 头尾位置 插入/删除速度很快。deque是一种更为复杂的数据结构。与string和vector类似,deque支持快速的随机访问。与string和vector一样,在deque的中间位置添加和删除元素的代价(可能)很高。但是,在deque的两端添加或
2015-10-27 16:35:03
2294
原创 UVa253 Cube painting(骰子涂色)(27行,比较简洁的样子)
算法竞赛入门宝典(第2版)习题4-4骰子涂色(Cube painting,UVa253)Cubepainting#include #include using namespace std;int main(){ string str,str11,str12,str13,str21,str22,str23; while(cin>>str){ str11=str[0]+str[5];
2015-10-03 00:27:52
5508
10
原创 Raising Bacteria (Codeforces Round #320 (Div. 2) [Bayan Thanks-Round] )
Codeforces上Codeforces Round #320 (Div. 2) [Bayan Thanks-Round]的这个Raising Bacteria挺好玩的,我也分享一下源码,(自己觉得这个解决方法还是挺好的,☺)题目是:A.RaisingBacteriatimelimitpertest1secondmemorylimit
2015-09-19 03:29:51
1548
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人