zoukankan      html  css  js  c++  java
  • 注意

    好久没有刷题了,感觉的确手深了,以前觉得杭电的题很不爽,但是现在觉得还行,毕竟锻炼的是严谨,总是在不经意间忽略了一些东西,然后就一直过不了了,哎

    写几点注意的东西,以后再添点吧;

    1. 数学很重要 ,思维方式的锻炼;

    2. 定义东西的时候最好大一些,不然的话会悲剧 如省赛第E题。

    3. 定义的变量最好言简意赅,要么是第一个字母 要么是英文简写,增加程序的可读性,方便调试。

    4. 要对程序数据做出一定的判断,这个也比较重要。

    5. 不要小看任何一个题目,这回要了你的命,麻痹大意绝对是分数的一大杀手。

    今天就写到这里吧,12 10 14




    为什么杭电2041以及后面的娜姐数 会是一个斐波那契数列;

    排列组合和递推方面一定要注意 加强锻炼

    如果后面的空格或者换行不好控制 ,不如从前面开始;


    近期需要学到的东西:dev的编译及其调试,vc++的调试,

    然后就是学习指针和结构体,面试题

    ubuntu的使用




    *p只改变p指向内存的值,而不改变p指向内纯的地址。

    p[i]=a[i];

    for (i=0;i<5;i++)

    { printf("String %d:",i+1);

    gets(p[i]);

    }

    从上面的语句可以看出,2维字符串也能用gets输入的


     


    大牛比较推崇的几个oj

    spoj sgu usaco



    使用指针的时候 要为其赋予初值 或者开辟空间


    EOF的时候

    可以人为EOF

    方法是按 ctrl+z

    字符串是 两次ctrl+z然后回车



    C99中允许对结构体中的某一成员初始化 如

    Struct student b={.name=”zhang yue ”} 其中 注意. . 的运算级别最高


    一行实现最大公约数的代码是

     return (b>0)?gcd(b,a%b):a;


    或者 return a%b==0?b:gcd(b,a%b);


    条件运算符 ?


    表达式为:表达式1?表达式2:表达式3

      先求解表达式1

      若其值为真(非0)则将表达式2的值作为整个表达式的取值,

      否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。

      例如:

      max=(a>b)?a:b

    就是将ab二者中较大的一个赋给max


    如果 A<B

    A%B=A



    归并排序


    #include<stdio.h>

    #include<string.h>

    int is1[100],is2[100];


    void m2(int low,int mid,int high)

    {

    int i=low,j=mid+1,k=low;


    while (i<=mid&&j<=high)

    if (is1[i]<=is1[j])

    is2[k++]=is1[i++];

    else

    is2[k++]=is1[j++];

    while(i<=mid)

    is2[k++]=is1[i++];

    while (j<=high)

    is2[k++]=is1[j++];

    for (i=low;i<=high;i++)

    is1[i]=is2[i];

     


    }


    void m1(int a,int b)

    { int mid;

    if (a<b)

    {

    mid=(a+b)/2;

    m1(a,mid);

    m1(mid+1,b);

    m2(a,mid,b);


    }


    }

     


    Atolatoi函数的使用方法 如果后面都为‘/0’转化不正常!!




    ACM对数学确实要求比较高。在ACM中,很多题目都涉及到数论、离散数学、几何学、组合数学甚至是微积分的知识。

    当然,计算几何是一大类问题,可以暂时不把它放在数学领域讨论,虽然计算几何的题目基本每个区域赛必考。

    我认为,你应该首先学习初等数论知识,如素数、同余、中国剩余定理等,这些都是些基础知识;之后,离散数学里面的知识也要有个概念,比如经典的逻辑关系、群的概念等;之后再学习组合数学的知识,特别是排列组合、Polya定理、鸽笼原理等等。这些东西,对于每一个分类,基本上poj上面都有对应的题目可以做,你可以在POJ上面多加练习。必须说的是,ACM是一个要求编程基础非常扎实的比赛,所以,多练习、多思考是必须要有的!

    数论的学习,必然是看看初等数论这本书,对于这本经典我就不说啥了。。。

    组合数学可以看看卢开澄的那本组合数学,也可以看看吴文虎的那本程序设计中的组合数学。

    希望对你有用!预祝取得好成绩!





    2072

    单词数 检测个数


    for(i=0;i<k-1;i++)

    {

    for(j=i+1;j<k;j++)

    {

    if((strcmp(b[i],b[j])==0))

    {

    c--;

    break;

    }

    }

    }

     


    -------------------------------------------------------------------------------------------------------------

    string.h中的memcpy函数

    进行数组间的赋值操作

    复制a数组中k个元素到b数组

    memcpyb,a,sizeof(type)*k;

    全部复制

    memcpyb,a,sizeof(a);

    string.h中的memset函数

    作用:进行数组初始化

    方法:

    memseta,0,sizeof(a);

    && ||是短路运算符号,后面的执行情况要取决与前面!

    String.hstrchr函数

    找到c字符在s中首次出现的位置,返回的是指针!如果没有这个字符,返回NULL

    方法 strchrcs;

    狗狗40题!

    Stdio.h中的函数sprintf

    作用:输出格式化数据到字符串;

    用法举例

    sprintf(s,“%d%d%d%d%d”, abc, de, x, y, z);

    但必须要保证写入的字符串要有足够的空间

    ———————————————————————————————————————

    用编译选项-Wall编译程序是,会给出很多警告信息,以帮助程序员查错;

    定义一个数组字符窜=0等于将它初始化

    ———————————————————————————————————————

    vim中的shift + v 是进入可视化编程

    ———————————————————————————————————————

    Vim 中,先用 gg 将光标移到开头,然后 切换选取模式,再用 G(大写将光标移到文档尾部(即全选),然后按 =,自动排版!

    ———————————————————————————————————————

    定义一个数为INT_MAX时的时候,特别要注意它在以后的过程中能否加,如果能加 ,则不行!

    ————————————————————————————————————————————

    在做模拟题目的时候,一定要把所有的情况都列出来!

    没有梦想,何谈远方
  • 相关阅读:
    Go内建容器篇
    Go基础语法篇
    【区块链】比特币Merkle树
    【区块链】Fabric 术语
    Apache旗下项目
    【区块链】Fabric0.6 与1.0
    rc.local不起作用
    命令行模式启动VMWare虚拟机
    vsftpd 530 Login incorrect 根本原因和解决方案
    Oracle的undotbs01.dbf文件太大(占用大量磁盘空间)处理方法 ORA-01654 空间不足 ORA-01653
  • 原文地址:https://www.cnblogs.com/zyue/p/3114252.html
Copyright © 2011-2022 走看看