做网站还有市场吗,建一个网站花费,易读网站建设,泰安做网站#x1f525;博客介绍#xff1a; 27dCnc
#x1f3a5;系列专栏#xff1a; 数据结构与算法 算法入门 C项目
#x1f3a5; 当前专栏: 算法入门 专题 : 数据结构帮助小白快速入门算法 #x1f4…
博客介绍 27dCnc
系列专栏 数据结构与算法 算法入门 C项目 当前专栏: 算法入门 专题 : 数据结构帮助小白快速入门算法 ☆*: .. o(≧▽≦)o ..:*☆ ❤️感谢大家点赞收藏⭐评论✍️ 学习目标
今日学习打卡 ACM题解 学习时间
周一至周五晚上 7 点—晚上9点周六上午 9 点-上午 11 点周日下午 3 点-下午 6 点 赛题 内容详细 thanks,mom【算法赛】
题目考点: 语言题 解题思路: 直接输出 易错点,注意输出格式: thanks, 后面有个空格
代码
#include iostream
using namespace std;
int main()
{std::cout thanks, mom;return 0;
}霓虹【算法赛】
题目考点: 思维 数组表示状态 思路: 用 0 和 1 表示每个数的开关状态,然后以没有变化前和变化后的数为下标去查询比较状态,最后得出答案 代码
#include iostream
using namespace std;
using ll long long;void solve(string s,string t) {int a[7][10] {{1,0,1,1,0,1,1,1,1,1},{1,1,1,1,1,0,0,1,1,1},{1,1,0,1,1,1,1,1,1,1},{1,0,1,1,0,1,1,0,1,1},{1,0,1,0,0,0,1,0,1,0},{1,0,0,0,1,1,1,0,1,1},{0,0,1,1,1,1,1,0,1,1}};ll ans 0;for (int i 0; i s.size(); i) {if(s[i] ! t[i]) {for (int j 0; j 7; j) {if (a[j][s[i] - 0] ! a[j][t[i] - 0]) ans;}}}std::cout ans endl;
}int main()
{string s,T;std::cin s T;solve(s,T);return 0;
}奇偶排序【算法赛】
题目考点: 自定义排序 思维 解题思路
用sort() 中的自定义排序规则根据题目要求偶数一定在奇数后面然后我们将元素区分奇偶,分别进行排序然后分别打印得到答案
代码
#includebits/stdc.h
using namespace std;bool cmp(int a,int b) {if ((a % 2 0 b % 2 0) || (a % 2 ! 0 b % 2 ! 0)) {return a b;} else {if (a % 2 0) {return false;} else {return true;}}
}int main()
{int n; std::cin n;std::vectorintans(n);for (int i 0; i n; i) {std::cin ans[i];}sort(ans.begin(),ans.end(),cmp);for (int i 0; i n; i) {std::cout ans[i] ;}return 0;
}可结合的元素对【算法赛】
题目考点: lowbit 暴力解法:超时
#include bits/stdc.h
using namespace std;
using ll long long;int lowbit(int a) {return (a) -(a);
}int main()
{int n; std::cin n;std::vectorintans(n 10);for (int i 1; i n; i) {std::cin ans[i];}ll ANS 0;for (int i 1; i n; i) {for (int j i 1; j n; j) { if ((lowbit(ans[i] ans[j])) (ans[i] ans[j])) ANS;}}std::cout ANS std::endl;return 0;
}最终解法: 暂时没有理解
#includebits/stdc.h
#define int long long
using namespace std;int a[100010];
unordered_mapint,int h;signed main()
{int n;cinn;for(int i1;in;i)cina[i];sort(a1,an1);int res0;for(int i1;in;i){for(int k1;k30;k)//枚举所有可能的k{int aj(1k)-a[i];//aj为能与a[i]配对的数if(h.find(aj)!h.end())resh[aj];//能找到aj}h[a[i]];}coutres;return 0;
}兽之泪【算法赛】
题目考点: 优先队列 解题思路:我尚未理解清楚
代码
#include bits/stdc.h
using namespace std;
#define int long long
using Pairpairint,int;
const int N2e59;
int a[N];
int b[N];
setints;
priority_queuePair,vectorPair,greaterPairpq;signed main()
{int n,k;cinnk;int tk;for(int i1;in;i){cina[i]b[i];if(in-1)pq.push({a[i],i});}int ans0,id;while(t--){if(s.size()n-1)pq.push({a[n],n});anspq.top().first;idpq.top().second;int tid;s.insert(id);pq.pop();pq.push({b[id],id});}int res0;int mnINT_MAX;for(int i1;in;i){resa[i];mnmin(mn,b[i]);}res(k-n)*mn;coutmin(ans,res);return 0;
}矩阵X【算法赛】
题目考点: 思维 队列 数组 滑动窗口 二维前缀和 代码
#include iostream
#include vector
#include queue
using namespace std;
int n,m;
int np,mp;
long long ans;
int main()
{cinnm;cinnpmp;bool flagfalse;if(nm)swap(n,m),swap(np,mp),flagtrue;vectorvectorint v(n1,vectorint(m1));vectorvectorlong long sum(n1,vectorlong long(m1));vectorvectorint maxn(n1,vectorint(m1));vectorvectorint minn(n1,vectorint(m1));if(flagfalse){for(int i1;in;i)for(int j1;jm;j)cinv[i][j];}else{for(int i1;im;i)for(int j1;jn;j)cinv[j][i];}for(int i1;in;i){for(int j1;jm;j){sum[i][j]sum[i-1][j]sum[i][j-1]-sum[i-1][j-1]v[i][j];}}queueint q;for(int i1;in;i){while(!q.empty())q.pop();for(int j1;jm;j){while(!q.empty()q.front()mpj)q.pop();while(!q.empty()v[i][j]v[i][q.front()])q.pop();q.push(j);if(j-mp11)maxn[i][j-mp1]v[i][q.front()];}}for(int i1;in;i){while(!q.empty())q.pop();for(int j1;jm;j){while(!q.empty()q.front()mpj)q.pop();while(!q.empty()v[i][j]v[i][q.front()])q.pop();q.push(j);if(j-mp11)minn[i][j-mp1]v[i][q.front()];//coutminn[i][j-mp1] ;}//coutendl;}for(int i1;in-np1;i){for(int j1;jm-mp1;j){for(int ki;kinp-1;k){maxn[i][j]max(maxn[i][j],maxn[k][j]);minn[i][j]min(minn[i][j],minn[k][j]);}//coutmaxn[i][j] minn[i][j] ;long long tempsum[inp-1][jmp-1]-sum[i-1][jmp-1]-sum[inp-1][j-1]sum[i-1][j-1];ansmax(ans,temp*(maxn[i][j]-minn[i][j]));}//coutendl;}coutansendl;
}学习产出 技术笔记 2 遍 CSDN 技术博客 3 篇 习的 vlog 视频 1 个