zoukankan      html  css  js  c++  java
  • xxx

    【收藏】
    阶乘计算升级版
    https://pintia.cn/problem-sets/14/problems/742

    求自定类型元素序列的中位数
    https://pintia.cn/problem-sets/14/problems/743

    【string stream】
    string str[1005];
    stringstream ss(s); //取消单词之前的空格
    while(ss >> s){
    str[cnt++]=s;
    }

    【字符串插入】
    s.insert(i," "); //对每个非字母和数字之前加空格
    i++;

    【大小写转换】
    toupper(char)
    tolower(char)

    【字母数字判断】
    isalnum(char)

    质数 > 5,要么6 X + 1 / 6 x - 1

    2^31 int 范围


    【前导0】
    %02d

    【素数】
    1不是,2是
    for(int i = 2;i <= n / i;i++){
    //check
    }

    【最大公因数】
    int gcd(int a,int b){
    return b == 0 ? a : gcd(b,a % b);
    }

    【快速进制转换】
    #include <iostream>
    using namespace std;
    int main() {
    int a;
    cout<<"16进制输入:";
    cin>>hex>>a;
    cout<<"16进制转10进制:"<<a<<endl;
    cout<<"以16进制输出:"<<hex<<a<<endl;

    cout<<"8进制输入:";
    cin>>oct>>a;
    cout<<"8进制转10进制:"<<a<<endl;
    cout<<"以8进制输出:"<<oct<<a<<endl;
    }

    【STL中插入pair】
    std::ios::sync_with_stdio(false);
    map<string,string> m;
    m.insert(pair<string,string>("ChuiZi","Bu"));
    m.insert(pair<string,string>("Bu","JianDao"));

    【STL遍历】
    std::ios::sync_with_stdio(false);
    map<string,string> m;
    m.insert(pair<string,string>("ChuiZi","Bu"));
    m.insert(pair<string,string>("Bu","JianDao"));
    for(map<string,string>::iterator it = m.begin();it != m.end();it++){
    cout << it->first << " " << it->second << endl;
    }


    【set】
    set.count() 没有找到就是0,找到就是1

    【sort 降序】
    sort(v.begin().v.end(),greater<int>());

    【map 初始化】
    map[123] = 'ID';

    【哈夫曼树---优先队列】
    //优先队列实现哈夫曼树
    #include<iostream>
    #include<cstdio>
    #include<queue>
    using namespace std;
    struct cmp{
    bool operator ()( int &a, int &b){
    if(a!=b)
    return a>b;
    }
    };
    int main(){
    int n;
    int a;
    cin>>n;
    priority_queue<int,vector<int>,cmp> pq;//法一
    for(int i=0;i<n;i++){
    cin>>a;
    pq.push(a);
    }
    int val=0;
    while(pq.size() > 1){
    int min1=pq.top();
    pq.pop();
    int min2=pq.top();
    pq.pop();
    min1+=min2;
    val+=min1;
    pq.push(min1);
    }
    cout<<val<<endl;
    return 0;
    }

    【素数=质数】
    质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数

    约数,又称因数


    【筛质数】
    #include<stdio.h>
    #include<iostream>
    using namespace std;
    const int N = 1e6+5;
    int prime[N];
    bool st[N];
    int cnt = 0;
    void get_prime(int n){
    //争取把每一个合数用他的质因子筛掉即可
    for(int i = 2;i <= n;i++){
    if(!st[i])
    prime[cnt++] = i;
    for(int j = 0; prime[j] <= n / i;j++){
    st[prime[j] * i] = true;
    if(i % prime[j] == 0)
    break;
    }
    }
    }

    int main(){
    int n;
    cin >> n;
    get_prime(n);
    cout << cnt <<endl;
    return 0;
    }


    【快速幂】
    #include<iostream>
    using namespace std;
    typedef long long ll;
    ll mod(ll x,ll y,ll k){
    if(y == 0) return 1 % k;//特判
    if(y == 1) return x % k;
    ll r = mod(x,y / 2,k);
    if(y % 2 == 0){
    return r* r % k; //奇偶判断
    }else{
    return ((r*r)%k)*x % k;
    }
    }
    int main(){
    int n;
    cin >> n;
    while(n--){
    ll x,y,k;
    scanf("%lld %lld %lld",&x,&y,&k);
    x = x % k;
    printf("%lld ",mod(x,y,k));
    }
    return 0;
    }


    【试除法求约数】
    #include<stdio.h>
    #include<iostream>
    #include<algorithm>
    #include<vector>
    using namespace std;

    vector<int> get(int n){
    vector<int> s;
    for(int i = 1; i <= n / i; i++){
    if(n % i == 0){
    s.push_back(i);
    //如果 i 是n的约数,那么 n / i 也是 n的约数
    if(i != n / i){
    s.push_back(n / i);
    }
    }
    }
    sort(s.begin(),s.end());
    return s;
    }

    int main(){
    int n;
    scanf("%d",&n);
    while(n--){
    int a;
    cin >> a;
    auto ss = get(a);
    for(auto i : ss) {
    cout << i <<' ';
    }
    puts("");
    }
    return 0;
    }


    【约束个数】
    #include<iostream>
    #include<algorithm>
    #include<map>
    using namespace std;
    const int mod = 1e9+7;
    int main(){
    int n;
    cin >> n;
    unordered_map<int,int> h;
    int a;
    while(n--){
    cin >> a;
    for(int i = 2;i <= a / i;i++){
    while(a % i == 0){
    h[i]++;
    a = a / i;
    }
    }
    if(a > 1)
    h[a]++;
    }
    long long ans = 1;
    for (auto i : h){
    ans = ans * (i.second + 1) % mod;
    }
    cout << ans;

    return 0;
    }

    【约数之和】
    #include<iostream>
    #include<algorithm>
    #include<map>
    using namespace std;
    const int mod = 1e9+7;

    int main(){
    int n;
    int a;
    cin >> n;
    unordered_map<int,int> h;
    while(n--){
    cin >> a;
    for(int i = 2;i <= a / i;i++){
    while(a % i == 0){
    h[i]++;
    a = a / i;
    }
    }
    if(a > 1)
    h[a]++;
    }
    long long ans = 1;
    for(auto i : h){
    int p = i.first; // p 为底数,q为指数 求 (p1^0 +..+ p1^x)*(....)*(pk^0+...+pk^x)
    int q = i.second;
    long long t = 1;
    while(q--){
    t = (t * p + 1) % mod;
    }
    ans = ans * t % mod;
    }
    cout << ans;
    return 0;
    }

  • 相关阅读:
    一个表对应另一个表中多个主键的查询方法(把一个表当成两个表用)
    可以切换数据库的SqlHelper
    win7安装后的用户选择
    如何删除 Windows.old 文件夹
    Windows Server 2008磁盘清理工具
    sqlserver express版PRIMARY 大小不能超过4G
    一交换机,一光猫、一路由器组internet网的方法
    公司部门职责清晰
    IIS下载EXE(拾遗)
    win2008 IIS 7.0中WebDAV
  • 原文地址:https://www.cnblogs.com/expedition/p/14051917.html
Copyright © 2011-2022 走看看