• 研究生复试机试准备之ACM算法入门经典的学习


    真的很尴尬,四年弹指一挥间,如今,计算机、数学、英语的水平就像一个刚刚毕业的高中生。如今仍然要入门一些简单的算法,现在真是后悔莫及。悔不该当初没有认真学习,悔不该没有天天coding。但是,“收余恨,且自新,改性情,休恋逝水”。认真准备复试,过了这关再望那关。

    第一章 程序设计入门

     输入三个数字,从大到小排序输出

    #include <stdio.h>
    #include <math.h>
    
    int main()
    {
        int a,b,c,t;
        scanf("%d%d%d",&a,&b,&c);
        if(a>b) {t=a;a=b;b=t;}
        if(a>c) {t=a;a=c;c=t;}
        if(b>c) {t=b;b=c;c=t;}
        printf("%d %d %d
    ",a,b,c);
        return 0;
    }

    第二章 循环结构程序设计

     在MinGW的gcc(7)中,要把%lld改成%I64d,但奇怪

    的是VC2008里又得改回%lld。

    第三章 数组和字符串

    开灯问题:

    有n盏灯,编号为1~n。第1个人把所有灯打开,第2个人按下所有编号为2
    的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯
    将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输
    入n和k,输出开着的灯的编号。k≤n≤1000。
    样例输入:
    7 3
    样例输出:
    1 5 6 7
    #include <stdio.h>
    #include <string.h>
    #define maxn 1010
    
    int a[maxn];
    
    int main()
    {
       int n,k,first = 1;
       memset(a,0,sizeof(a));
       scanf("%d%d",&n,&k);
       for(int i = 1;i <= k;i++)
        for(int j = 1;j <=n; j++)
          if(j%i == 0) a[j] = !a[j];
    
       for(int i = 1; i<= n ;i++)
       if(a[i]) {
        if(first) first = 0 ;
        else printf(" ");
        printf("%d",i);
       }
       printf("
    ");
       return 0;
    }

    第四章 函数和递归

    第五章 STL

    第六章 数据结构

    第七章 暴力求解

    LAST 典型算法

  • 相关阅读:
    windows系统使用sketch设计的设计稿
    移动端点击按钮复制链接
    设置display:inline-block 元素间隙
    修改url中参数值
    fiddler主要图标说明
    fiddler抓包工具
    数据库删除
    having的用法
    left join on和where
    Statement和PreparedStatement有什么区别?哪个效率高?
  • 原文地址:https://www.cnblogs.com/kmxojer/p/14470274.html
Copyright © 2020-2023  润新知