头像

cht

Acwing菜鸡博主,喜欢点个关注吧~(会互粉)




离线:1天前


最近来访(1064)
用户头像
俗世奇人
用户头像
ViceCity
用户头像
向挽
用户头像
wx090708
用户头像
sweet也许很可爱
用户头像
123go
用户头像
夜白丶
用户头像
I+III
用户头像
xiusike1
用户头像
挑战关注全acwing的人
用户头像
23_1
用户头像
Tutou_Li
用户头像
joylie
用户头像
shiweiping1124
用户头像
wuwendongxi
用户头像
icebreaker
用户头像
fujang
用户头像
bxiao0801
用户头像
好好学习好好生活
用户头像
喵喵酱

新鲜事 原文

cht
1个月前
三百粉丝,稽。 感谢大家的资瓷,祝acwing越来越好!


活动打卡代码 AcWing 1146. 新的开始

cht
1个月前
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 310;
int n, m;
struct Node
{
    int a, b, w;
    bool operator< (const Node &W) const
    {
        return w < W.w;
    }
}es[N * N];
int p[N];
int g[N][N];
int cnt = 0;
int find(int x)
{
    if(p[x] != x) p[x] = find(p[x]);
    return p[x];
}
int kr()
{
    long long int ans = 0;
    sort(es + 1, es + 1 + cnt);
    for(int i = 1; i <= cnt; i ++) p[i] = i;
    for(int i = 1; i <= cnt; i ++)
    {
        int a = find(es[i].a), b = find(es[i].b);
        if(a != b)
        {
            p[a] = b;
            ans += es[i].w;
        }
    }
    return ans;
}
int main()
{
    cin >> n;
    for(int i = 1; i <= n; i ++)
    {
        int w;
        cin >> w;
        es[ ++ cnt] = {i, n + 1, w};
    }
    for(int i = 1; i <= n; i ++)
    {
        for(int j = 1; j <= n; j ++)
        {
            cin >> g[i][j];
        }
    }
    for(int i = 1; i <= n; i ++)
    {
        for(int j = 1; j < i; j ++)
        {
            es[ ++ cnt] = {i, j, g[i][j]};
        }
    }
    cout << kr() << endl;
    return 0;
}


活动打卡代码 AcWing 420. 火星人

cht
1个月前
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~
#include<iostream>
#include<cmath>
#include<algorithm> 
using namespace std;
const int N = 10010;
int n, m;
int a[N];
int main()
{
    cin >> n >> m;
    for(int i = 1; i <= n; i ++) cin >> a[i];
    while(m --) next_permutation(a + 1, a + 1 + n);
    for(int i = 1; i <= n; i ++) cout << a[i] << ' ';
    cout << endl;
    return 0;
}


活动打卡代码 AcWing 413. 乒乓球

cht
2个月前
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>

using namespace std;

void work(string str, int res)
{
    int a = 0, b = 0;

    for(int i = 0; i < str.size(); i ++)
    {
        if(str[i] == 'W') a ++;
        else b ++;

        if(max(a, b) >= res && abs(a - b) >= 2) 
        {
            cout << a << ":" << b << endl;
            a = b = 0;
        }
    }

    cout << a << ":" << b << endl;
}

int main()
{
    string str;
    char c;

    while(cin >> c, c != 'E') str += c;

    work(str, 11);
    cout << endl;
    work(str, 21);

    return 0;
}


活动打卡代码 AcWing 447. 瑞士轮

cht
2个月前
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~
#include<bits/stdc++.h>
using namespace std;
const int N = 2 * 100010;
int n, m, qq;
int f[N],w[N],q[N];
int t1[N], t2[N];
bool cmp(int a, int b)
{
    if(f[a] != f[b]) return f[a] > f[b];
    return a < b;
}
int main()
{
    cin >> n >> m >> qq;
    for(int i = 0; i < n * 2; i ++) cin >> f[i];
    for(int i = 0; i < n * 2; i ++) cin >> w[i];
    for(int i = 0; i < n * 2; i ++) q[i] = i;
    sort(q, q + n * 2, cmp);
    for(int qwq = 0; qwq < m; qwq ++)
    {
        int k1 = 0, k2 = 0;
        for(int i = 0; i < n * 2; i += 2)
        {
            int a = q[i], b = q[i + 1];
            if(w[a] < w[b])
            {
                f[b] ++ ;
                t1[k1 ++] = a;
                t2[k2 ++] = b; 
            }
            else
            {
                f[a] ++;
                t1[k1 ++] = b;
                t2[k2 ++] = a;
            }
        }
        int i = 0, j = 0, k = 0;
        while(i < k1 && j < k2)
            if(cmp(t1[i], t2[j])) q[k ++] = t1[i ++];
            else q[k ++] = t2[j ++];
        while(i < k1) q[k ++] = t1[i ++];
        while(j < k2) q[k ++] = t2[j ++];
    }
    cout << q[qq - 1] + 1;
}


活动打卡代码 AcWing 438. 分数线划定

cht
2个月前
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 5010;
int n, m;
struct Person
{
    int id, sum;
    bool operator< (const Person &W)const
    {
        if (sum != W.sum) return sum > W.sum;
        return id < W.id;
    }
}person[N];
int main()
{
    scanf("%d%d", &n, &m);
    for (int i = 0; i < n; i ++ ) scanf("%d%d", &person[i].id, &person[i].sum);
    sort(person, person + n);
    int k = m * 1.5;
    while(k < n && person[k - 1].sum == person[k].sum) k ++ ;
    printf("%d %d\n", person[k - 1].sum, k);
    for(int i = 0; i < k; i ++ ) printf("%d %d\n", person[i].id, person[i].sum);
    return 0;
}


活动打卡代码 AcWing 429. 奖学金

cht
2个月前
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 310;
int n;
struct Node
{
    int id, a, b, c, sum;
    bool operator< (const Node& W) const
    {
        if(sum != W.sum) return sum > W.sum;
        if(a != W.a) return a > W.a;
        return id < W.id;
    }
}alls[N];
int main()
{
    cin >> n;
    for(int i = 1; i <= n; i ++) 
    {
        int x, y, z;
        cin >> x >> y >> z;
        alls[i] = {i, x, y, z, x + y + z};
    }
    sort(alls + 1, alls + 1 + n);
    for(int i = 1; i <= 5; i ++)
    {
        cout << alls[i].id << ' ' << alls[i].a + alls[i].b + alls[i].c << endl;
    }
    return 0;
}


活动打卡代码 AcWing 425. 明明的随机数

cht
2个月前
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 110;
int n;
int a[N];
int main()
{
    cin >> n;
    for(int i = 1; i <= n; i ++) cin >> a[i];
    sort(a + 1, a + 1 + n);
    n = unique(a + 1, a + 1 + n) - a;
    cout << n - 1<< endl;
    for(int i = 1; i < n; i ++) cout << a[i] << ' ';
    cout << endl;
    return 0;
} 


活动打卡代码 AcWing 1162. 公交换乘

cht
2个月前
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>

using namespace std;

const int N = 100010;

int n;

struct Node
{
    int c, price, t;
}alls[N];

pair<int, int> q[N];
int hh = 0, tt = -1;
bool st[N]; 

int main()
{
    cin >> n;

    for(int i = 0; i < n; i ++)
    {
        cin >> alls[i].c >> alls[i].price >> alls[i].t;
    }

    long long int res = 0;

    for(int i = 0; i < n; i ++)
    {
        if(alls[i].c == 0) 
        {
            res += alls[i].price;
            q[ ++ tt ] = {alls[i].price, alls[i].t};
        }
        else
        {
            bool flag = false;
            while(hh <= tt && alls[i].t - q[hh].second > 45) hh ++;
            for(int j = hh; j <= tt; j ++)
                if(q[j].first >= alls[i].price && st[j] == false)
                {
                    st[j] = true;
                    flag = true;
                    break;
                }
            if(flag == false) res += alls[i].price;
        }
    }

    cout << res << endl;

    return 0;
}



活动打卡代码 AcWing 469. 成绩

cht
2个月前
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~#include<iostream>
using namespace std;
int main()
{
    int a, b, c;
    cin >> a >> b >> c;
    cout << a * 0.2 + b * 0.3 + c * 0.5 << endl;
    return 0;
}