首页 > 其他分享 >8.16集训笔记

8.16集训笔记

时间:2023-08-16 13:34:37浏览次数:48  
标签:std main 8.16 int namespace 笔记 using include 集训

上午/一维数组排序

  • 排序:sort,冒泡,选择,插入,计数
    复杂度:\(O(nlogn),O(n^2),O(n^2),O(n^2),O(n)\)
点击查看代码
#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
const int N=1e5+10;
int a[N], n;

int main(){
//    cin>>n;
//    for(int i=1; i<=n; i++) cin>>a[i];
//    sort(a+1, a+1+n); // 快速排序,默认升序

//     冒泡:每次比较两个相邻元素 
//     for(int i=n; i>=1; i--){     // 第 n-i+1 轮冒泡 
//        for(int j=1; j<i; j++)    // 需要比较的区间 [1,i-1] 
//             if(a[j] > a[j+1]) swap(a[j], a[j+1]);
//    }
//  选择:每次选择最大值放最后 
//    for(int i=n; i>=1; i--){
//        int k = i; // 最大值所在下标 
//        for(int j=1; j<i; j++) // [1, i-1]
//            if(a[k] < a[j]) k=j;
//        swap(a[k], a[i]);
//    }
//  插入:将当前元素插入一个有序序列
//    for(int i=1; i<=n; i++){
//        int k=i;
//        for(int j=i-1; j>=1; j--){
//            if(a[k] >= a[j]) break;
//            else {  swap(a[k], a[j]); k=j; }
//        }
//    }
//    for(int i=1; i<=n; i++) cout<<a[i]<<" "; cout<<endl;
//    计数排序,标记思想:a[x] 表示 x 的个数
    cin>>n;
    for(int i=1; i<=n; i++){
        int x; cin>>x;
        a[ x ] ++;
    }
    for(int i=1; i<=10; i++){
        for(int j=1; j<=a[i]; j++) // a[i] 个 x
            cout<<i<<" ";
    }
    return 0;
}
/* 给定一个数列:2 4 2 3 1,  请手写其 三种排序的过程
如:冒泡
1. 2 2 3 1 4
2. 2 2 1 3 4
3. 2 1 2 3 4
4. 1 2 2 3 4
*/

  • 标记思想练习

  • P1008 [NOIP1998 普及组] 三连击
    分析:
    方法1:9个for, 枚举所有排列情况
    方法2:3个for, 枚举每个三位数
    方法3:枚举 \(a=i\),计算出 \(b=2*i,c=3*i\),再利用标记思想检查是否 1-9 都出现了。

点击查看代码
#include<bits/stdc++.h>
using namespace std;
int st[10];
int main(){
    for(int i=100; i<=999; i++){
        int a=i, b=i*2, c=i*3;
        if(c>999) break; // 如果出现四位数,会出现越界,危险
        for(int j=0; j<10; j++) st[j]=0;
        st[a/100] = st[a/10%10] = st[a%10]=1;
        st[b/100] = st[b/10%10] = st[b%10]=1;
        st[c/100] = st[c/10%10] = st[c%10]=1;
        int s = 0;
        for(int j=1;j<=9;j++) s += st[j];
        if(s==9) cout<<a<<" "<<b<<" "<<c<<endl;
    }
    return 0;
}

相关文章

  • 【刷题笔记】23. Merge k Sorted Lists
    题目Mergeksortedlinkedlistsandreturnitasonesortedlist.Analyzeanddescribeitscomplexity.Example:Input:[1->4->5,1->3->4,2->6]Output:1->1->2->3->4->4->5->6题目大意合并K个有序链表解题思路借助分治的思想,把K个......
  • gunicorn学习笔记
    官方文档:https://docs.gunicorn.org/en/stable/部署flask相关2.1参考:https://blog.csdn.net/qq_41608408/article/details/1261107462.2参考:https://blog.csdn.net/luhuibo318/article/details/1026881542.3参考:https://www.jianshu.com/p/fecf15ad0c9a2.4参考:https://w......
  • PPT| 《图解CIO工作指南(第4版)》-读书笔记P143
    PPT共143页,由于篇幅有限,以下为部分资料.......
  • 2023.8.16
    今天不是生日,也没有节日,普通得不能再普通的一天。无聊随意翻网站,偶然翻到了两年前生日发的博客,不知道为何内心有点波澜,想写点东西,但也不知道写什么。回忆我回忆起了2021年3月14日,我正坐在图书馆三楼(可能是)我一个很少光顾的位置上,午后阳光很懒,慢慢撒到桌子上,映红半张草稿纸,我在费......
  • 笔记整理--C语言——忽略大小写的字符串查找
    char*stristr(char*pString,char*pFind){unsignedlongpFind_len=0;unsignedlongcmp_len=0;char*pt1=NULL,*pt2=NULL;char*pString_pt=pString;///////////////pFind_len=strlen(pFind);if(pFind_len==0){......
  • 2023正睿金华暑假集训
    说句题外话,这个博客不更是因为我转cnblogs了。2023正睿金华暑假集训7月15日,我跟随大队来到了金华第一次参加暑假出省线下集训,之前在高中部集训过,但都是校内的集训,没怎么出去过。唯一一次好像还是去六中集训,但最多也就是几个学校之间的小打小闹。7月份是在C班集训,课没怎么听,......
  • 《安富莱嵌入式周报》第320期:键盘敲击声解码, 军工级boot设计,开源CNC运动控制器,C语言
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 视频版:https://www.bilibili.com/video/BV1Cr4y1d7Mp/1、键盘敲击声解码https://arxiv.org/abs/2308.01074键盘敲击声被解码的话,我们使用键盘输入密码将被方便的解码出......
  • ❤️ GitHub Copilot 读心术揭秘,Copilot 逆向工程笔记
    总览你是否好奇GitHubCopilot如何知道你想写的内容?有时候它聪明得甚至好像读过你项目里其他文件一样,不要怀疑,它确实读过。这篇文章记录了我阅读一个对Copilot的逆向工程的笔记,一言以蔽之,Copilot使用了Jaccard相似度获取用户最近访问过的页面里与当前编辑内容最相似的代码......
  • 算法工程师学习运筹学 笔记三 对偶问题
    对偶问题每一个线性规划问题(称为原始问题)都有一个与它对应的对偶线性规划问题(称为对偶问题)。在原始的和对偶的两个线性规划中求解任何一个规划时,会自动地给出另一个规划的最优解;当对偶问题比原始问题有较少约束时,求解对偶规划比求解原始规划要方便得多;对偶规划中的变量就是影......
  • 【学习笔记】lazytag 重学笔记
    还打算用作TikZ练习文。感觉用TikZ画图很酷炫。下面不分析具体问题,直接对于普遍的lazytag问题解决。可以lazytag的问题见atcoderlibrary。......