- 博客(16)
- 收藏
- 关注
原创 异或和或-daimayuan
无非就四种情况,0 0 —> 0 0;0 1 或者 1 0 — > 1 1;其次,对于全是其中有一个字符串全是0的情况,也直接NO;因为0 0 再怎么转换,也不能转换成1。最后,其他的情况直接YES;因为 ,1 1 -> 0 1, 0 1- > 1 1。首先,如果这两个字符串的长度不相等,我们直接NO;
2023-04-17 19:42:22 110
原创 Daimayuan-订单编号
这个题我的做法是用一个map与并查集,因为对于每个位置的答案要求:找到大于等于原编号的且未被使用的一个数,所以可以用并查集来维护;代码如下:需要注意的是需要用ios加速,会卡时间的。
2023-04-14 14:43:44 115
原创 Daimayuan 走楼梯2
很明显是一道dp的题目,因为每一个楼梯的状态都是由上一个或者上上一个转移而来的,但是题目有个约束,要求不能连续三次上两个台阶,所有这就要求我们要用到两层循环,dp[i][j];dp[i][2] : 连续走跨两个阶梯到达i阶梯;dp[i][0] : 走一步到达i阶梯;dp[i][1] : 走两步到达i阶梯;
2023-04-12 17:03:27 150
原创 Daimayuan的“一个整数”
这个题目需要考虑很多细节,主要是分为两种情况:我们记最大的ai为maxx,剩余的数量为summ。第一种:maxx > summ + 1,直接return -1。第二种:maxx <= summ + 1,那么每次都取最小的,但是要保证前后不能相等。需要注意的是:在maxx == summ + 1,这种情况里,如果maxx的那个数是0的话,也不满足题意,直接return -1。在dfs前还需要特判一下0这种情况。接下来直接上代码。int v[10];i<=9;
2023-04-11 16:27:21 147
原创 第十三届安徽省大学生程序设计大赛_K基地安全(树形DP)
其次,我们要考虑对一个图形dp的方式,这道题我们选择按照编号顺序从左往右,从右往左,和从两头向中间三种方式,最后取答案的最小值。这道题可以用树形dp来做,首先呢我们考虑dp的下界,不管是五边形,四边形还是三角形,最后都会被分成一条直线。
2023-04-02 16:07:01 267
原创 2022安徽省赛-H 选左选右
但是作为后手,没有选择权的,所以取最小值,最后获得的分数是:min(f(arr, l + 1,r) , f(arr, l, r-1))。先手最后的得分就是:max(arr[l] + g(arr, l + 1, r) , arr[r] + g(arr, l ,r-1));假设在arr[l...r] 范围内拿牌,先手 int f(arr, l, r) , 后手 int g(arr, l, r)如果拿走左侧的牌,那么在剩下的牌中就是后手,获得的分数是:arr[l] + g(arr, l + 1, r)
2023-04-01 10:21:21 85
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人