竞赛
考级
是不是超纲了……
返回目录 > 第一章 > 输入输出 第一篇 第二篇 第三篇
#include <bits/stdc++.h> using namespace std; int main(){ int a,c[100005],d[100005],x=0,l = 0,r = 0; cin>>a; for(int i = 1;i<=a;i++) cin>>c[i]; for(int i = 1;i<=a;i++) cin>>d[i]; sort(c+1,c+1+a); sort(d+1,d+1+a); }
这题怎么那么简单呢?
3 4 5:这不就是勾股定理吗?!
AI帮忙的地方我都标注了 📌 核心思想:一条路走到黑,走不通就回溯 💡 适用场景:全排列、组合、迷宫、连通块、树/图遍历、回溯类问题(千问AI生成) dfs模版: 总的来说,深搜有3个步骤——进,回,离 进:进入递归 回:回溯 离:离开函数 只要掌握这3点递归dfs不是问题 另外,dfs还有一个很重要的步骤——剪枝 剪枝指的是减去不必要的递归,使代码的时间复杂度更低 例如A7991.迷宫 如果不剪枝,那么代码如下 时间为1ms 击败了30.27%的用户 加上剪枝后代码 用时:1ms 击败了30.33%的用户 你可能会说:“不就0.06%吗,没啥作用” 那是因为这道题测试点太小 我又在团队里创了一个极端101*101的数据,并把时间调的十分苛刻 用时整整差了60ms 现在,你看到剪枝的魅力了吧 作为dfs死磕粉,我觉得剪枝太伟大了,bfs啥也不是
666
有一点怀念
const int maxn = 1001; int a[maxn]; #define N1001 int a[N]
who 可以帮我一下?
会字符串的用字符数组,不会就用while提取数字输出。
有点太多了。 堆不下了。喵。 我们来讲讲快速幂。 链接描述 事情是这样的: 给出 a b p 需要你求出 a^b % p的数值。 做法是这样的: 已知: 3^50 = 3^32 * 3^16 * 3^2 将50(b)分解成 3 的幂次。 即可。 实现: 今天上午考试去了。 拉完了。 为什么我T1爆零? T1: 链接描述 镜面质数 这题纯sb。 空间卡的很严很。非常不通人性。 我就是空间开大了。 爆零了。 真服了。 就这么对我啊。 以后现在平台上过一次。 T2: 链接描述 这道题还挺难的。 大概是黄题吧。 是 双指针 + STL 的结合体。 T4:一直在你身旁 下位紫 这道题用的是一个区间DP+单调队列优化 dp[i][j]=min(dp[i][j],max(dp[i][k],dp[k+1][j])+a[k]); 如果说,不对其进行优化,那么时间复杂度是在O(n^3)级别。有85分。 我们的目标是将其时间复杂度降低到O(n^2)级别,获得100分。 那么如何对其进行优化呢? 是这样的,区间DP有一个基础的框架,外面的两层一般是舍不掉的。 那么能够优化的,就是最后的那一层O(n)级别的。 如何优化? 根据观察可以发现:dp[i][k] 和 a[k] 会随着时间的推移逐步递增。 而每一次选择,我们都是在dp[i][k]和dp[k+1][j]中选择一个更大的去与dp[i][j]进行比较。 那么不难得出,每一次循环,都会有一个中位值mid。使得dp[i][mid-1]<dp[mid][j] 并且 dp[i][mid]>=dp[mid+1][j]的。 而所有会被选择的dp[i(固定)][k(>mid)]中,最小的就是dp[i][mid]。
数据过水了吧,就一个,还是样例!
1.30m都没过
样例全是十进制!太水了!!
我不行了,燃尽了......
请大家在讨论区里面说一说吧。
常见例题 A2479.可莉的蹦蹦炸弹 A336.前缀和 A335.前缀和2 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 一维前缀和 这是新手经常干的事 时间复杂度O(N²) 遇到0<N<100000000 就原地升天! 前缀和的精华在于—— “提前准备” 时间复杂度O(N); 哪有人会说了:“A336.前缀和不是左右击击吗?” 掐头去尾 但上一个I得从一开始
共7044条