随笔分类 -  题目

摘要:A 模拟记录一下即可。 点击查看代码 #include<bits/stdc++.h> #define int long long using namespace std; int n; char c[55]; bool vs[55]; void xm(){ memset(vs,0,sizeof(vs 阅读全文
posted @ 2026-03-18 16:44 u_uICLMFu_uX 阅读(1) 评论(0) 推荐(0)
摘要:该学习笔记为2026.2.23至2026.3.1在信友队集训所学算法的笔记,每种算法抽取一道题写题解。 由于是给自己看的题解,所以证明过程基本都略了,而且可能不太严谨,慎用。 1.决策单调性优化\(dp\) P4767 [IOI2000] 邮局 加强版 决策单调性优化大多数用于区间拆分或区间合并 但 阅读全文
posted @ 2026-02-27 09:53 u_uICLMFu_uX 阅读(5) 评论(0) 推荐(0)
摘要:D link 首先考虑比较暴力的怎么做。 我们考虑一个前缀和的数组\(qzh_{0/1,i}\)代表\(1\)~\(i\)中\(0/1\)的个数。 那么如果我们让区间\(l\)~\(r\)(因为区间长度可以为\(0\),所以\(r \geq l-1\))是\(1\),答案就是\(qzh_{1,l-1 阅读全文
posted @ 2025-06-02 10:07 u_uICLMFu_uX 阅读(46) 评论(0) 推荐(0)
摘要:A link 如果选择这一天做题可以让差增加(即我这一天的题数大于他下一天的题数),则选;否则不选。 特殊的,另一个人地\(n+1\)天我们钦定他做了\(0\)道题。 点击查看代码 #include<bits/stdc++.h> using namespace std; int n; int a[1 阅读全文
posted @ 2025-02-04 20:10 u_uICLMFu_uX 阅读(47) 评论(0) 推荐(0)
摘要:A link 如果两只小动物只往中间跳的话,那么中间间隔奇数个就是另一个小动物赢(一定会出现两个小动物挨着而该爱丽丝跳了),否则就是爱丽丝赢(一定会出现两个小动物挨着而改另一个动物跳了)。 那么我们可以发现,两个小动物只会往中间跳,因为往边上跳跳出去再跳回来一定是偶数步,不会改变自己的输赢(即不改变 阅读全文
posted @ 2025-02-03 21:33 u_uICLMFu_uX 阅读(32) 评论(0) 推荐(0)
摘要:A link 总共就三组,看一下每一组如果满足要让它是多少,看看最多有几个相同的,最多有几个相同的就满足这些,就可以满足这么多组。 点击查看代码 #include<bits/stdc++.h> using namespace std; int a[10]; int c[5]; void qwq(){ 阅读全文
posted @ 2025-01-31 21:36 u_uICLMFu_uX 阅读(37) 评论(0) 推荐(0)
摘要:A link 首先,每次操作(第一次除外)之前\(s\)一定是一个奇数,那么我们要再加一个奇数才能让它变为偶数分数加一。 那么就是说操作过至少一次后,有几个奇数就有几分。 那么如果有至少一个偶数,那么第一次用偶数可以得分,后面再用奇数可以得分,偶数的不了分,最终得分就是奇数个数加一,如果没有偶数,第 阅读全文
posted @ 2025-01-30 19:04 u_uICLMFu_uX 阅读(42) 评论(0) 推荐(0)
摘要:A link 首先,对于一个数(比如说\(x\)),它和它加一一定互质(也就是\(x\)和\(x+1\)一定互质),那么它和它加一组成的区间(\([x,x+1]\))一定是好区间,也一定是最小好区间,因为除了本身\([x,x+1]\)、两个数\([x,x]\),\([x+1,x+1]\)和空集不包含 阅读全文
posted @ 2025-01-30 12:51 u_uICLMFu_uX 阅读(38) 评论(0) 推荐(0)
摘要:C link 手写队列存下开始位置和长度,模拟即可。 点击查看代码 #include<bits/stdc++.h> #define int long long using namespace std; int q; struct nd{ int st,len; }a[300005]; int h = 阅读全文
posted @ 2025-01-22 20:34 u_uICLMFu_uX 阅读(46) 评论(0) 推荐(0)
摘要:好像已经很久没有写过题解了 C link 对于每一个糕点,二分查找大于等于它大小的二倍的糕点的位置(可以用\(lower_{}bound\)函数),从这个位置到\(n\)就是可以和这个糕点配对的糕点。 猜猜我是啥 #include<bits/stdc++.h> #define int long lo 阅读全文
posted @ 2025-01-13 10:12 u_uICLMFu_uX 阅读(38) 评论(0) 推荐(0)
摘要:A link 由于它是由递减变成递增的,所以一定是中间一段连续的相同数不变,前面变,后面变,因为对于一个数来说原来这些数前面的数都大于等于它,而现在都要小于等于它,而原来后面的数都小于等于它,而现在都大于等于它了,那么它左右等于它的就可以不变,而不等于它的就一定要变。 那么一定是找个数最多的数不变, 阅读全文
posted @ 2024-11-24 17:42 u_uICLMFu_uX 阅读(33) 评论(0) 推荐(0)
摘要:C link 我们找到第\(k-1\)个段的结尾和第\(k\)个段的开头和结尾,当输出到第\(k-1\)个段的结尾时,输出第\(k\)个段,也就是第\(k\)个段的开头到结尾个\(1\),当输出到第\(k\)个段的开头时,直接跳到第\(k\)个段的结尾。 那么怎么找第\(k-1\)个段的结尾和第\( 阅读全文
posted @ 2024-11-16 21:38 u_uICLMFu_uX 阅读(55) 评论(0) 推荐(0)
摘要:C link 由于只能往后放,显而易见,如果可以达到要求,那么一定只有一种方式。所以重心就在判断是否可行上了。 首先,如果总数量不等于\(n\)肯定不行。 其次,如果第一堆不在\(1\)肯定不行。 最后,如果到了某个点的时候石头总和不够\(1\)到这个点的数量一定是不行的。 那么在统计答案的时候,我 阅读全文
posted @ 2024-11-11 21:00 u_uICLMFu_uX 阅读(95) 评论(0) 推荐(0)
摘要:C link 存一下那些点不能占,用总数减去即可,注意存的时候可以用一个\(map\),存过的就不要再存了。 神奇的代码 #include<bits/stdc++.h> #define int long long using namespace std; int n,m; int ans; int 阅读全文
posted @ 2024-11-08 17:57 u_uICLMFu_uX 阅读(40) 评论(0) 推荐(0)
摘要:今天的题比较简单。 A 友矩阵 link 人话翻译一下题目中的条件。 1.和相等。 2.左上角相同。 3.右下角不同。 4.长宽之和相同(周长相同)。 5.长宽之差互为相反数(一个长减宽,一个宽减长)。 我们可以证明一下两个矩形如果互为满足2.3.4.5.条的友矩阵,一定是左上角重合一个横着一个竖着 阅读全文
posted @ 2024-10-03 14:44 u_uICLMFu_uX 阅读(37) 评论(0) 推荐(0)
摘要:A 四舍五入 link 求{ \(i/j\) } $ < 0.5$ ({}是取小数),即\(i/j-\lfloor i/j \rfloor < 0.5\),两边同时乘\(j\),\(i-\lfloor i/j \rfloor j < 0.5j\),会发现(别问怎么发现的)左边就是\(i\) % \( 阅读全文
posted @ 2024-10-01 17:00 u_uICLMFu_uX 阅读(27) 评论(0) 推荐(0)
摘要:A link 如果想要\(x_1+y_2=x_2+y_1\),就是\(x_1-x_2=y_1-y_2\)即可,那么我们可以存一下每一个\(i\)的\(x\)与\(y\)的差,每到一个\(i\)就看一下前面有几个的差和它相等,这一个就可以和多少个组上对。 点击查看代码 #include<bits/st 阅读全文
posted @ 2024-09-15 20:48 u_uICLMFu_uX 阅读(22) 评论(0) 推荐(0)
摘要:A link 判断。 点击查看代码 #include<bits/stdc++.h> using namespace std; signed main(){ int l,r; cin >> l >> r; if(l == 1&&r == 0) cout << "Yes"; else if(l == 0 阅读全文
posted @ 2024-09-12 20:58 u_uICLMFu_uX 阅读(43) 评论(0) 推荐(0)
摘要:A link 判断\(A\),\(B\)之间可不可以放一个数,如果可以就是\(3\)个,不行就是\(2\)个(左右),但是如果\(A\),\(B\)相等就只有一个。 点击查看代码 #include<bits/stdc++.h> using namespace std; signed main(){ 阅读全文
posted @ 2024-08-31 21:50 u_uICLMFu_uX 阅读(82) 评论(0) 推荐(0)
摘要:A link 先输出后面,在输出前面。 神奇的代码 #include<bits/stdc++.h> using namespace std; int n,k; int a[105]; signed main(){ cin >> n >> k; for(int i = 1;i <= n;++ i){ 阅读全文
posted @ 2024-08-29 12:08 u_uICLMFu_uX 阅读(73) 评论(0) 推荐(0)