zoukankan      html  css  js  c++  java
  • 刷题记录

    刷题记录

    常见题型

    • 模拟

    • STL

    • 字符串

    • 数字

    • 暴力

    • 搜索(BFS/DFS)

    • 图论

    • 贪心

    • DP

    PIPIOJ周赛记录

    PAT记录

    常用技巧

    • 多组输入

      // c++使用方法
      while(cin>>c && c != 0){
      	...
      }
      
      // c使用方法
      while(scanf("%d", &t) != EOF){
          ...
      }
      
    • 直接输入,输出16进制

      scanf("%llx", &a);
      printf("%llx", a);
      
    • 结构体使用地址尽量使用指针,不然可能会出现以下问题

      struct Node{
      	int id;
      };
      
      void test1(){
      	Node *t;
      	for(int i = 0; i < 2; i ++){
      		Node *node = (Node*)malloc(sizeof(Node));
      		node->id = i;
      		if(i == 0){
      			t = node;
      		}
      		cout<<"i:"<<i<<endl;
      		printf("%p
      ", node);//新分配的地址
      	}
      	
      	cout<<t->id<<endl;//为0
      	return 0;
      }
      
      void test2(){
      	Node *t;
      	for(int i = 0; i < 2; i ++){
      		Node node;
      		node.id = i;
      		if(i == 0){
      			t = &node;
      		}
      		cout<<"i:"<<i<<endl;
      		printf("%p
      ", &node);//每次都一样,同一个地址
      	}
      	
      	cout<<t->id<<endl;//为1
      	return 0;
      }
      
    • 字符串输入输出

      //c++使用头文件<bits/stdc++.h>
      string s;
      printf("%s", s.c_str());//string不是c中的string,需要调用c_str()才能对应%s
      
      //输入一行
      getline(cin, s);//输入一行,包括空格,直到换行符为止
      gets(s);//输入一行,包括空格,直到换行符为止
      
    • 字符数组定义

      char str[10] = {"0123456789"};
      
    • ctype头文件使用

      #include<ctype>
      bool isDigial(char c);//判断是否是数据
      char tolower(char c);//转换成小写
      
    • 对于特定格式的输入可以使用scanf();简化

      //输入 "11:12"
      scanf("%d:%d", &a, &b);//简化了':'处理
      
      //对于单个字符前的无效空格和换行
      scanf(" %c", c);//自动跳过之前的无效空格与换行
      

    常见错误

    • 判断数据类型以及数据范围

      • 何时使用int和double

      • 是否需要使用long long

        //long long的输入与输出
        long long a;
        printf("%lld", a);//或printf("%l64", a);
        
        //强转long long
        long long c = 1ll * a * b;
      
  • 相关阅读:
    UML类关系:依赖、关联、聚合、组合(收藏)
    java常用设计模式八:代理模式
    java常用设计模式三:原型模式
    java常用设计模式总览
    java常用设计模式七:装饰模式
    java常用设计模式六:适配器模式
    Sword C语言原子操作
    C语言 宽字符串
    C语言 字符串切割
    C语言 sscanf函数补充
  • 原文地址:https://www.cnblogs.com/faberry/p/12342705.html
Copyright © 2011-2022 走看看