- 博客(46)
- 收藏
- 关注
原创 一键整理背包界面功能
上述代码通过利用 Lua 表的特性构建映射表来优化背包整理的效率,避免了嵌套 for 循环带来的性能问题,特别是在处理大量物品种类和数量时能有更好的表现。
2025-01-09 18:53:39
884
原创 A*算法使用的前提条件及不能使用的场景
A *算法需要一个启发式函数来估计从节点到目标节点的代价。这个函数的值必须是可量化的,并且应该是一个乐观的估计,即不能高估从节点到目标节点的实际代价。例如,在路径规划问题中,如果是在平面地图上寻找从起点到终点的最短路径,启发式函数可以是节点到目标节点的直线距离(欧几里得距离)。因为直线距离肯定小于等于实际路径的长度,符合启发式函数的要求。算法需要知道从哪里开始搜索(起始节点)以及搜索的目的地(目标节点)。
2025-01-09 18:44:09
491
原创 实习第一周学的
然后还可以通过padding设置它的上下左右的离边界的空格,constraint这个参数可以被注意一下,经常被用到。还有如何实现只有少量的格子,格子能显示在居中,这个可以通过设置它的锚点Anchors,把它设置成middle center,然后那个pivot是中心点的意思。还有Maskable,勾选上了代表遮罩开启,如果当前组件是text,并且覆盖在按钮上,它可能会导致底下的按钮无法点击,取消了才恢复正常。注意层级关系,如果父对象的框框只有那么大,可能会限制它的子对象的框框的大小。
2024-05-18 10:35:25
328
原创 C#基础面试题集
值类型存储在栈中,引用类型存储在堆中。值类型存储快,引用类型存储慢。值类型表示实际数据,引用类型表示指向在内存堆中的指针和引用。值类型在栈中可以自动释放,引用类型在堆中需要GC来释放。
2023-12-09 21:50:32
792
原创 Codeforces Round #808 div2 ABCD
否则说明我们的智商不足以将所有考试参加完,但是假如我们不参加这次考试,我们就拥有更高的智商,这无疑对于后面的考试是有益的,也不会造成智商的浪费问题。举一个例子你的智商为1,你将要面对的考试是21111,如果你因为头铁干掉了第一场考试,你就会因为过于弱智痛失剩下的所有考试。,显然最坏的情况是i~n的考试数量,每场考试分配一点智商,但是我们发现如果==a[i]......
2022-07-17 11:48:50
275
原创 Codeforces Round #807 div2 CD
现有一个字符串,执行若干copy操作将copy到的字符添加到末尾。进行q次询问,每次询问需要回答最终结果串s的某个位置的字符。找下标,然后再通过下标输出从最后一段一直往前模拟递推字符在启示串中的位置即可递归。...
2022-07-16 12:14:49
226
原创 枚举模拟递推
汉诺塔题目描述汉诺塔问题,条件如下:这里有A、B、C和D四座塔。这里有n个圆盘,n的数量是恒定的。每个圆盘的尺寸都不相同。所有的圆盘在开始时都堆叠在塔A上,且圆盘尺寸从塔顶到塔底逐渐增大。我们需要将所有的圆盘都从塔A转移到塔D上。请你求出将所有圆盘从塔A移动到塔D,所需的最小移动次数是多少。汉诺塔塔参考模型输入格式没有输入输出格式对于每一个整数n(1≤n≤12),输出一个满足条件的最小移动次数,每个结果占一行。我们首先以三个盘的汉诺塔问题为基础。设d[n]表示求解n盘3塔问题
2022-05-05 21:45:09
132
原创 位运算--二进制
最短Hamilton路径状压dp+二进制题目描述给定一张 n(n \leq 20)(n≤20) 个点的带权无向图,点从0 \sim n-10∼n−1标号,求起点 0 到终点 n-1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点恰好一次。输入描述:第一行一个整数n。接下来n行每行n个整数,其中第i行第j个整数表示点i到j的距离(一个不超过10^7107的正整数,记为a[i,j])。对于任意的x,y,z,数据保证 a[x,x]=0,a[
2022-05-03 21:55:39
210
原创 2022年十三届蓝桥杯B组题解(全)
十三届蓝桥杯省赛C++B组 真题题解A.九进制转十进制B.顺子日期C.刷题统计题目描述输出格式输入样例输出样例D.修剪灌木题目描述输入格式输出格式输入样例输出样例E.X进制减法题目描述输入格式输出格式输入样例输出样例数据范围与提示F.统计子矩阵题目描述输出格式输入样例输出样例数据范围与提示G.积木画题目描述输入格式输出格式输入样例输出样例H.扫雷题目描述输入格式输出格式输入样例输出样例数据范围与提示I.李白打酒加强版题目描述输入格式输出格式输入样例输出样例数据范围与提示J.砍竹子题目描述输出格式输入样例输出
2022-05-02 15:04:29
7473
6
原创 天梯 L2
L2-001 紧急救援 Dijkstra#include<cstdio>#include<algorithm>using namespace std;int n,m,c1,c2;int dis[510],weight[510],e[510][510],num[510],w[510],pre[510];//最短路径长度,救援队数量,两城市之间的路的长度,用来更新最短路径数量的数组,用来更新最多救援队数量的数组,记录前驱的数组bool visit[510];const i
2022-04-19 21:49:11
235
原创 第45届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海)DM
D Walker#include<bits/stdc++.h>using namespace std;/*double get_dis(double pos,double v,double n){ double a=(pos+n)/v; double b=(n-pos+n)/v; return min(a,b);}*/int main(){ int t; cin>>t; while(t--){ doub
2022-04-14 22:04:24
462
原创 Educational Codeforces Round 123 div2
C Increase Subarray Sums题意tn,xa[],a[],a[]…给你一个数列,要你求在不同取值不同的k的条件下,(k的意思就是你能加k个x,但没规定一定要把这些x全部加上) 和最大的连续子序列的和(这里的子序列没有规定长度)。(k的取值是0到n)思路用差分数组计算不同截取长度的和最大的连续子序列的和,针对“k的意思就是你能加k个x,但没规定一定要把这些x全部加上”这个问题,我们直接扫描不同截取长度的连续子序列的和最大值(这里解决中间参杂负数不知道取哪里、取多长造就和最大
2022-02-23 21:12:20
139
原创 快速排序(二刷一下)
快速排序#include<iostream>using namespace std;const int N=1e6+10;int n;int q[N];void quick_sort(int q[],int l,int r){ if(l>=r)return; int i=l-1,j=r+1,x=q[l+r>>1];//确定分界点 while(i<j) { do i++;while(q[i]<x);//调
2022-01-22 22:11:48
348
原创 牛客月赛 40补题
比赛链接A 数字游戏题意二进制中有奇数个1,最后一位 0变1 或 1变0偶数个1,最高位1变0问:几次能全部变成0?思路首先分成两大部分,奇数个1 和 偶数个1然后在此基础上再分尾数是1和0的情况,所以就有4种情况讨论,通过模拟小的样例得规律!!!知识点二进制数末尾为1,便为奇数,末尾为0,则为偶数n&1判断奇偶,偶数为0,奇数为1n>>i可以取n的二进制的末尾第i个数,如n=4,100,n>>3=1#include<bits/std
2021-11-16 22:51:31
970
原创 Codeforces Round#674div.3 CDEF
C题目题目链接刚开始给你一个数组为[1],。你每次可以有如下两种操作:(1) 从数组中选择任意一个数字,并分裂成两个一模一样的数。(2) 从数组中选择一个数加1。例如,现在你有五次操作的机会。第一次,把第一个数分裂,变成[1,1]。第二次,把第一数加1操作,[2,1]。第三次,把第二个数分裂,[2,1,1]。第四次,把第一个数分裂,[2,1,1,2]。第五次,把第四个数加1,[2,1,1,3]。五次后数组元素总和为2+1+1+3 = 7.你的任务是消耗最少的次数使得数组的总和大于等
2021-10-27 21:03:35
159
原创 2021-10-19
K题目链接欢欢一直在研究狂热的编程问题。然而,今天他决定让自己休息一下,去一个美丽的国家旅行。因此,出现了另一个问题。全国共有n个城市。有m 条双向道路,每条道路都直接连接两个不同的城市。由于该国拥有稳固的交通系统,因此每两个城市之间总会有一条路径连接。欢欢到了S市,想把尽可能多的物品运到T市。每天他都会走过一条路。每经过一条路,都要付出一定的代价。根据政策,费用取决于您携带的物品数量和您进入该国的天数。更准确地说,每条道路的费用是k d,其中k 是黄欢要携带的物品数量,d 是他入境的天数。例如,
2021-10-19 22:01:50
155
原创 codeforces round#747div2
A题目链接题意给出n,要你找出L,R,满足L+(L+1)+······+(R-1)+R=n.思路直接-n+1, n,因为-n+1到n-1的和抵消了为0,只剩下了n(注意观察样例)#include<bits/stdc++.h>using namespace std;int main(){ long long t,n; cin>>t; while(t--) { cin>>n; cout<
2021-10-13 20:51:56
145
原创 codeforces global round 1
C.meaningless operation题目链接题意思路#include<bits/stdc++.h>using namespace std;typedef long long ll;int q;ll a;ll p[30]; ll print(ll x){ for(ll i=3;i*i<=x;i++) { if(x%i==0)return x/i; } return 1;} int main(){
2021-09-18 21:43:46
163
原创 codeforces#742 div2BC
B题目链接题意a为数组中最小的未出现的非负整数,b为整个数组的异或和,问满足条件的数组的最小长度ans是多少思路首先可以知道ans>=a,不妨设0~a-1的异或和,接下来分3种情况讨论:1是c=b,则ans=a2是c!=b,则我们要让c异或上某个值d得到b,如果d不是a的话,我们直接把d添加进数组就OK,3否则,就要用另外两个值异或一下得到a再去和c异或得到b,因为a不能出现在数组中,这种情况就是ans=a+2.^的知识点^异或,exclusive OR,xor(同为0,异为1)
2021-09-18 16:30:44
172
原创 codeforces1066C
codeforces1066C题目链接在一个神奇的地方有一座神奇的火车站,它只有一条铁轨,可是它却会有从两个方向到来的火车…现在给你t个操作或询问,操作或询问可能的情况有以下几种:1.? num ——询问至少需要从火车站驶出多少列火车才能让编号num的火车顺利离开火车站2.L num——有一列编号为num的火车从左侧驶入火车站,并停留在火车站中3.R num——有一列编号为num的火车从右侧驶入火车站,并停留在火车站中现在需要你针对每一次第一种询问输出结果。Input第一行包含了一个数字t
2021-08-26 16:30:24
191
原创 codeforces #538div2
B题目链接小红是一个程序媛,她和一般程序员不同的地方是,小红有艺术爱好,她喜欢种花。她种了一些盆栽,每盆盆栽的花瓣数量不同,因为小红是一个爱思考的程序员,她的头发比较少,所以她喜欢花瓣多的花。在一堆盆栽里面,花瓣数最多的前m盆盆栽被定义为漂亮的花。例如:当m=2时,有4盆花花瓣数为:10 20 5 15,那么漂亮的花是第2和4盆她现在要把这n盆盆栽搬到k个房间,请问小红要怎么搬这些花,才能使得漂亮的花的花瓣数总和最大?搬花的时候花的顺序不能改变。当有多种情况符合时,输出任意一种Input第一行
2021-08-17 12:03:42
154
原创 codeforce#738 div2
B正解#include<bitsdc++.h>using namespace std;const int N =110;int T;int n,m,k;int main(){ cin>>T; while(T--) { char s[N]; cin>>n; for(int i=1;i<=n;i++) cin>>s[i]; int pos=n+1;
2021-08-16 11:42:32
195
原创 树状数组 单点修改&区间查询
树状数组 1 :单点修改,区间查询#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 10;typedef long long ll;struct BIT { ll sum[N]; inline int lowbit(int x) { return x & (-x); } void add(int x, int val) { whi
2021-08-14 17:30:07
252
原创 高斯消元解线性方程组
高斯消元解线性方程组输入一个包含 n 个方程 n 个未知数的线性方程组。方程组中的系数为实数。求解这个方程组。下图为一个包含 m 个方程 n 个未知数的线性方程组示例:输入格式第一行包含整数 n。接下来 n 行,每行包含 n+1 个实数,表示一个方程的 n 个系数以及等号右侧的常数。输出格式如果给定线性方程组存在唯一解,则输出共 n 行,其中第 i 行输出第 i 个未知数的解,结果保留两位小数。如果给定线性方程组存在无数解,则输出 Infinite group solutions。如
2021-08-13 20:34:12
203
原创 扩展中国剩余定理
扩展中国剩余定理给定 2n 个整数 a1,a2,…,an 和 m1,m2,…,mn,求一个最小的非负整数 x,满足 ∀i∈[1,n],x≡mi(mod ai)。输入格式第 1 行包含整数 n。第 2…n+1 行:每 i+1 行包含两个整数 ai 和 mi,数之间用空格隔开。输出格式输出最小非负整数 x,如果 x 不存在,则输出 −1。如果存在 x,则数据保证 x 一定在 64 位整数范围内。数据范围1≤ai≤231−1,0≤mi<ai1≤n≤25输入样例:28 711 9
2021-08-11 21:42:30
201
原创 codeforces 158B
codeforces 158B题目链接题意给很多队人,每一队人有不同的人数,用一辆出租车将他们全部送走。题目要求求最小的出租车的数量,因为一辆出租车只能载4个人,所以要找出最优的方案来解决这个问题思路用数学、桶来做,或贪心如果用贪心的话,先不管别的,首先对数据数组排序,· 将排序后的数组最大的和最小的加在一起,如果值<=4,则下一次不用考虑最大和最小的队伍,载人次数+1· 因为此时车还没载满,所以根据贪心原则,还要看看能不能再载一队,这时再加上最末尾的最小的人数,载人次数不变· 如果
2021-07-25 11:32:42
176
原创 周赛#10
A题目链接题意思路#include<bits/stdc++.h>#define ll long longusing namespace std;const int maxn=1e5+3;int main(){ int t; scanf("%d",&t); while(t--) { string x; cin>>x; int t=-1; for(int i=0;i
2021-07-19 23:59:42
127
原创 codeforces div2#703AB
codeforces div2#703ABA题目链接题意给你n堆积木,第i个堆有hi个块,其高度就是其中的块数。在一次移动中,你可以选择从第i个堆里取出1块,加到i+1个堆里,问你可不可以让高度的顺序严格递增。思路用两个前缀和sum和need,sum用来记录所有块的数量,need从0开始,后面元素依次+1的总和(把每堆多余的统计起来,加到最后,也可实现递增),就只用比较sum和need的大小了,sum<need,就代表没有足够多的积木用来实现递增#include<bits/stdc
2021-07-19 17:28:55
175
原创 codeforces div2#701AB
codeforces div2#701A题目链接题意给你两个数a,b;可以进行如下两个操作:1)a=a/b;2)b=b+1;要求用最小的操作次数使a=0;思路除非b=1,否则a最多30多步就可以到0,那么b操作最多进行30多次。2的10次方=1024。而且肯定越早加越好,那么枚举b的次数算出总次数取最小值即可#include<iostream>#include<cstdio>using namespace std;int T,A,B;int main()
2021-07-19 15:54:04
137
原创 codeforces div2#700AB
700ABA题目链接题意A和B同时操作一个字符串S,将某个位置的字符改变,且不能和原来的字符相同,A要让字符串字典序变小,B则相反,A先操作。两个人都同时选择最优情况,每个位置只能被操作一次,求操作后的字符串思路还算简单,A把字符改成a,如果本身就是a,就改成b。B把字符改成z,同样的,如果本身就是z,就改成y。我不理解的是为啥i从1开始循环的时候,就过不了?把i改成从0开始就过了,这是为啥啊???#include<iostream>#include<cstdio>
2021-07-18 12:15:23
112
原创 codeforces div2#699AB
codeforces div2#699ABA题目链接题意思路题意十分简单,但我倔强地要用map来写,感谢w大佬给我找出了好多bug,一是s.length()显示长度的函数,我原本写的是sizeof(),结果这是变量字节的大小,哭笑,不看书真的不行,我现在很多东西都是模仿别人过来的,但知其一不知其二者多矣。二是sum判负数的情况,负数对应的也是真,只有0才是假。三是漏了两种情况,分别是横竖坐标只有一个到了,另一个没到,flag=1,还是不满足的情况。#include<iostream>
2021-07-17 10:02:40
129
原创 codeforces div2#698AB
codeforces div2#698ABA题目链接题意给你一串升序的数字,给数字上色,要求去掉某个颜色之外的所有数,该颜色的数,呈严格递增,也就是不能相等,且要递增。所以相等的数字不能涂一样的颜色比如下例,去掉红之外的颜色,红色的数字依旧呈升序1 1 1 2 3 4红黄绿红红红思路直接上map,然后找到map最大值#include<iostream>#include<cstdio>#include<algorithm>#include&l
2021-07-16 11:30:19
127
原创 codeforces div2#696AB
codeforces div2 #696ABA题目链接题意给定一个01字符串a,然后要找到一个同长度的01串b,再把a,b加起来,得到串d,如0110+1101=1211,然后相同的数字会合并成一个数,1211->121,求出这个串b,使得串d最大。思路贪心。首先能加1的位置肯定先加1,那么考虑什么情况下加1会使d变小呢,那就是a[i]+b[i]等于上一位pre的数,会发生合并,那么这位数就浪费了。第一位肯定是加1的,然后用pre上一位,遍历到i的时候,如果+1会是得和前面的数pre相等,
2021-07-15 17:55:23
131
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人