摘要: P4924 [1007] 魔法少女小Scarlet 对模拟题摸不着头脑。 看题解之后的源码 本来想把变量塞进for循环结果莫名re #include<bits/stdc++.h> #include<iostream> #include<cstdio> #include<algorithm> #inc 阅读全文
posted @ 2023-09-22 17:32 加固文明幻景 阅读(25) 评论(0) 推荐(0)
摘要: 完全想不出来正解,暴力t了过不了 class Solution { public boolean isUgly(int n) { if (n == 1) { return true; } if (n <= 0) { return false; } outer:for(int i = 2; i < n 阅读全文
posted @ 2023-09-06 16:02 加固文明幻景 阅读(6) 评论(0) 推荐(0)
摘要: 用很丑陋的递归做出来的 class Solution { public boolean isPowerOfTwo(int n) { if (n == 1) { return true; } if (n <= 0) { return false; } if(n % 2 != 0) { return f 阅读全文
posted @ 2023-09-04 19:55 加固文明幻景 阅读(7) 评论(0) 推荐(0)
摘要: 没想到我现在能卡在这样的题目上 leetcode258各位相加 只尝试了循环模拟,一开始代码是这样的。 class Solution { public int addDigits(int num) { int temp; do { while(num != 0) { temp += num % 10 阅读全文
posted @ 2023-09-04 19:11 加固文明幻景 阅读(14) 评论(0) 推荐(0)
摘要: 再冲击一次自己的上限吧 这几年失败遗憾太多了,无所谓,但唯独不想在oi上认输。 读了软工专业,从新开始,搞竞赛,刷题。 在此更新刷题记录 阅读全文
posted @ 2023-09-04 19:04 加固文明幻景 阅读(12) 评论(0) 推荐(0)
摘要: 由题意可知每次只能取两端的零食。这就可以看出来这是一道区间DP题。 我设计出了一个状态 : $f[l][r]$ 表示$[l,r]$这个区间最多能得到的钱。 当时我就自以为是的推出了转移方程: $f[l][r]=max(f[l+1][r]+a[l]*(r-l+1),f[l][r-1]+a[r]*(r- 阅读全文
posted @ 2019-02-10 02:24 加固文明幻景 阅读(10) 评论(0) 推荐(0)
摘要: 这道题可以用DP来做。 我们定义状态$f[i]$为是当前的人数为$i$时的队伍数量的最大值。而$i$同时也代表现在是第几个人。 根据题意。我们可以推出转移方程 当$i<a[i]$时: $f[i]=f[i-1]$ 当前队伍中的人数$i$不大于$a[i]$时,我们显然不能让第$i$个选手自己组成一个队伍 阅读全文
posted @ 2019-02-07 22:03 加固文明幻景 阅读(18) 评论(1) 推荐(0)
摘要: 这道题总体来说并不难,纯模拟即可。唯一的难点就是判断无解。 我想了挺久愣是没想到什么好办法。然后我就动了点歪脑筋。 我们先来看一下这份没有判断无解情况的代码(我把他命名为代码67)。(思路与其他题解大体相同的,泥萌看不懂的话也可以去看其他题解的注释,然后他们判断无解的部分先忽略掉。 #include 阅读全文
posted @ 2019-02-07 12:14 加固文明幻景 阅读(7) 评论(0) 推荐(0)
摘要: 耗费了两天$AC$了线段树的两道模板。就把我自己的代码贴出来以后$DEBUG$的时候做个参考吧。 线段树壹 #include <cstdio> typedef long long ll; const int N = 100000+10; int n,m; ll a[N]; struct Segmen 阅读全文
posted @ 2019-02-03 08:57 加固文明幻景 阅读(8) 评论(0) 推荐(0)
摘要: 这道题其实之前就A了,现在再做一遍反而调了一下午。 二分答案的模板和思路都没问题。调的主要是check函数。 话不多说,先看看我第一次和第二次写的check bool check(int x) {//1 int sum=0; for(int i=2; i<=A; i++) { sum=0; for( 阅读全文
posted @ 2019-02-02 18:30 加固文明幻景 阅读(6) 评论(0) 推荐(0)