找回密码
 立即注册
首页 业界区 安全 C++小白训练第六天

C++小白训练第六天

阙忆然 2026-1-16 23:45:00
C++小白训练第六天

以下为牛客挑战
今日收获
  1. 了解了map<int,int>m;,map可以去重共,因为键值对key是唯一的,
  2. for (auto it = m.begin(); it != m.end(); ++it) {
  3.     int key   = it->first;   // 键
  4.     int& val  = it->second;  // 值
  5. }
  6. for (auto& [k, v] : m) { /* k 是键,v 是值 */ }
  7. 所以一般使用时候都是先转换为vector<pair<int,int>>m;
  8. for(auto &z: m){
  9.         v.emplace_back(z);
  10.     }
复制代码
小红出千

G-小红出千_牛客周赛 Round 123
1.png
  1. 5
  2. 1 2 3 4 6
复制代码
  1. 1
  2. 5 5
复制代码
这个顺子一定是长度为n的,所以当我门固定一个左端,那右端就可以确定了,我们可以用双指针去维护
2.png

我们去维护一个区间,我们发现在区间中,只要我们的数够多就可以,我们就可以更少的从区间外去变换到区间里面,所以我就去遍历一下找到合适的区间,
最后找到一个区间满足且有较多的数,再把这些里面的数进行标记一下,标记为使用
一个是数有没有用,一个是位置
[code]for(int i=l;i t; while (t--)#define TESTconst int N=2e5+10,M=1e3+10,mod=1e9+7;int a[N],b[N],c[N],pre[N];signed main(){        std::ios::sync_with_stdio(false);    cin.tie(0);    cout.tie(0);    int n;    cin>>n;    mapm;    vectors(n+1);    for(int i=1;i>s;        m[s]=i;    }    vectorv;    for(auto &z: m){        v.emplace_back(z);    }//    for(int i=0;i

相关推荐

2026-1-26 04:16:11

举报

喜欢鼓捣这些软件,现在用得少,谢谢分享!
2026-1-28 06:08:41

举报

2026-2-7 11:45:19

举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册