• 暴力求解/数学问题


    1.数学问题

    (1)素数

    算术基本定理:若(ain Z),(agt 1),则有(a=p_1p_2cdots p_n),其中(p_i)为素数
    证明:假定定理对所有小于a的正整数均成立 若a为素数,则结论显然成立 若a为合数,(a=bc),其中(1lt b,clt a)由归纳假设(b=p_1p_2cdots p_k,c=p_{k+1}p_{k+2}cdots p_n)
    for(int i = 2; i <= n; i++)
    {
    	if(!vis[i])
    	prime[cnt++] = i;
    	for(int j = 0; j<cnt && i*prime[j]<=n; j++)
    	{
    		vis[i*prime[j]] = 1;
    		if(i % prime[j] == 0) break;
    	}
    }
    
    判断素数
    陷阱:1的特殊处理(极易错)
    bool judge(int x){
    	if(x<2)return 0;
        for(int i=2;i<=sqrt(x);++i){//9
            if(x%i==0)return 0;
        }
        return 1;
    }
    

    (2)gcd

    long long gcd(long long a,long long b){return b==0?a:gcd(b,a%b);}//原来a>b现调换
    

    (3)回文数

    for(int i = 0; i < index / 2; i++) {
    	if(arr[i] != arr[index-i-1]) 
    	{         
    		printf("No
    ");            
    		flag = 1;break;        
    	}    
    }if(!flag)printf("Yes
    ");
    

    3.数据类型范围

    数据类型 用10表示 用2表示
    unsigned int 0, 4×10^{9} 0, 2^{32}-1
    int -2×10^{9}, 2×10^{9} -2^{31}, 2^{31}-1
    unsigned long 0, 4×10^{9} 0, 2^{32}-1
    long -2×10^{10}, 2×10^{10} -2^{31}, 2^{31}-1
    long long 0, 9×10^{18} -2^{63}, 2^{63}-1
    unsigned long long 0, 10^{19} 0, 2^{64}-1
    数据类型 比特位数 有效数字 用10表示 用2表示
    float 32 6~7 -3.4*10^{38}~+3.4*10^{38} -2^{128} ~ +2^{128}
    double 64 15~16 -1.7*10^{-308}~1.7*10^{308} ——
    long double 128 18~19 -1.2*10^{-4932}~1.2*10^{4932} ——

    求解技巧

    思路:遍历范围内全部数字,依据首+尾/首+间隔遍历

    1.二分法upper_bound,lower_bound的运用

    2.PAT题,利用次序

    for (int i = 0; i < len; i++) {
    	if (s[i] == 'T')countt++;
    }
    for (int i = 0; i < len; i++) {
    	if (s[i] == 'P')countp++;
    	if (s[i] == 'T')countt--;
    	if (s[i] == 'A')result = (result + (countp * countt) % 1000000007) % 1000000007;
    }
    

    3.数学形式题注意对数字的直接利用,少用字符串特性
    4.-(n)问题

    int n=-2^31;
    -n存储需用long long

  • 相关阅读:
    Servlet设置Cookie无效
    IOS即时通讯XMPP搭建openfire服务器
    IOS之富文本编辑
    unittest单元测试框架总结
    杀死future处理的阻塞线程
    APP的UI设计原则
    如何降低一个程序的耦合性
    Hyperopt中文文档导读
    Hyperopt中文文档导读
    AdaBoost算法特性
  • 原文地址:https://www.cnblogs.com/chanceYu/p/12037202.html
Copyright © 2020-2023  润新知