zoukankan      html  css  js  c++  java
  • 第二次上机总结

    第二次上机总结

    问题

    (先咕了) 多打点代码就熟练了

    AC代码(非官方题解)

    A test a xor b

    • 签到题 送分题
    • 异或用法和数据范围
    #include <stdio.h>
    int main(){
        long long a,b;int n;
        scanf("%d",&n);
        while(n--){
            scanf("%lld%lld",&a,&b);
            printf("%lld
    ",a^b);
        }
        return 0;
    }
    

    B 五则运算

    • 签到题 送分题
    • 分支结构 ifswitch的用法
    #include <stdio.h>
    int main(){
        char calc[50] = {0};
    	while(fgets(calc,50,stdin)){
    		int a,b;char op;
    		sscanf(calc,"%d%c%d",&a,&op,&b);
    		switch(op){
    		case '+':
    			printf("%d
    ",a + b);
    			break;
    		case '-':
    			printf("%d
    ",a - b);
    			break;
    		case '*':
    			printf("%d
    ",a * b);
    			break;
    		case '/':
    			if(b == 0){
    				puts("WA");
    			}
    			else{
    				printf("%d
    ",a / b);
    			}
    			break;
    		case '%':
    			if(b == 0){
    				puts("WA");
    			}
    			else{
    				printf("%d
    ",a % b);
    			}
    			break;
    		default:
    			break;
    		}
    	}
        return 0;
    }
    

    C 有理有据的送分

    • 模拟可以做
    • 这里给出我的思路 开数组 用memset模拟 最后统计
    #include <stdio.h>
    char buf[10010]={0};
    int main(){
        int m,n,i,j,cnt = 0;
    	memset(buf,1,10002);
    	scanf("%d%d",&n,&m);
    	while(m--){
    		scanf("%d%d",&i,&j);
    		memset(buf + i,0,(j - i + 1));
    	}
    	for(i = 1;i <= n;i++){
    		if(buf[i])cnt++;
    	}
    	printf("%d
    ",cnt);
        return 0;
    }
    

    D 迷惑行为

    • 数学函数 浮点数精度 数据范围
    • 最后一组数据很
      ps: 小迷弟的真正迷惑行为是一边debug一边骂
    #include <stdio.h>
    #include <math.h>
    int main(){
    	double a,b;
    	while(~scanf("%lf%lf",&a,&b)){
    		printf("%lld
    ",(long long)((log10(b) + 1e-9) / log10(a)));
    	}
    	return 0;
    }
    

    E 1917大班长(这是17系助教玩梗)

    • 数组
    • 开大数组计数,同时不停的记录最大值.
    • 遍历整个数组即可找到所有最大值
    • 千万别排序 会超时
    #include <stdio.h>
    #define MAX(a,b) (((a)>(b))?(a):(b))
    int s[1000020] = {0};
    int main(){
    	int n,cur,i,m = 0;
    	scanf("%d",&n);
    	while(~scanf("%d",&cur)){
    		s[cur]++;
    		m = MAX(m,s[cur]);
    	}
    	for(i = 1;i <= n;i++){
    		if(s[i] == m){
    			printf("%d %d
    ",i,s[i]);
    		}
    	}
    
    	return 0;
    }
    

    F 进制转换

    • 进位制 数学问题
    • 思路是提取出每一位然后反着输出
    #include <stdio.h>
    int main(){
        int num,radix;
        scanf("%d%d",&radix,&num);
    	int arr[32] = {0},i=0;
    	while(num){
    		arr[i] = num % radix;
    		num /= radix;
    		i++;
    	}
    	while(i--){
    		putchar(arr[i] + '0');
    	}
    	putchar('
    ');
        return 0;
    }
    

    G ZYT学“真·位运算”

    • 位运算
    • 用"位与"和"移位"提取指定字节
    • 用"位或"和"移位"把字节拼起来
    #include <stdio.h>
    #define GETBYTE0(i) ((i)&(0xff))
    #define GETBYTE1(i) (((i)&(0xff00))>>8)
    #define GETBYTE2(i) (((i)&(0xff0000))>>16)
    #define GETBYTE3(i) (((i)&(0xff000000))>>24)
    #define GETBYTE(x,i) (((x)&((0xff)<<(8*i)))>>(8*i))
    int main(){
        unsigned int n,m = 0;
    	scanf("%u",&n);
    	m |= GETBYTE(n,1);
    	m |= ((GETBYTE(n,0)) << 8);
    	m |= ((GETBYTE(n,3)) << 16);
    	m |= ((GETBYTE(n,2)) << 24);
    	printf("%u",m);
        return 0;
    }
    
    

    H 朵朵买甜瓜

    • 逻辑问题
    • 枚举(如何把语言转化为代码是重点)
      下面搬运官方题解
    #include <stdio.h>
    int main() {
        int i, x[20] = {0};
        for (i=1; i<=16; i++)
            scanf("%d", &x[i]);
        for (i=1; i<=4; i++) {
            int w[5] = {0};
            w[i] = 1;
            if ((w[x[1]]==x[2]) + (w[x[3]]==x[4]) == 1 &&
                (w[x[5]]==x[6]) + (w[x[7]]==x[8]) == 1 &&
                (w[x[9]]==x[10]) + (w[x[11]]==x[12]) == 1 &&
                (w[x[13]]==x[14]) + (w[x[15]]==x[16]) == 1)
                printf("%d
    ", i);
        }
        return 0;
    }
    
  • 相关阅读:
    新一代MQ apache pulsar的架构与核心概念
    Flutter使用fluwx实现微信分享
    BZOJ3622 已经没有什么好害怕的了 动态规划 容斥原理 组合数学
    NOIP2016提高组Day1T2 天天爱跑步 树链剖分 LCA 倍增 差分
    Codeforces 555C Case of Chocolate 其他
    NOIP2017提高组Day2T3 列队 洛谷P3960 线段树
    NOIP2017提高组Day2T2 宝藏 洛谷P3959 状压dp
    NOIP2017提高组Day1T3 逛公园 洛谷P3953 Tarjan 强连通缩点 SPFA 动态规划 最短路 拓扑序
    Codeforces 873F Forbidden Indices 字符串 SAM/(SA+单调栈)
    Codeforces 873E Awards For Contestants ST表
  • 原文地址:https://www.cnblogs.com/woshilxcdexuesheng/p/14579953.html
Copyright © 2011-2022 走看看