头像

yxc

北京大学




在线 


最近来访(14590)
用户头像
Pluto._72
用户头像
爪洼
用户头像
唯爱
用户头像
Belous
用户头像
Eureka_7
用户头像
想打代码的小学生
用户头像
星星亮了
用户头像
不能自控的小人
用户头像
seraphlive
用户头像
せつしようまる
用户头像
18935227192
用户头像
alphak12
用户头像
zcming123xyz
用户头像
acw_yc
用户头像
wayy
用户头像
D_deBUG
用户头像
Marvelous.
用户头像
帕瓦
用户头像
liki_3
用户头像
McKinleyLu

活动打卡代码 AcWing 3990. 砍树

yxc
1天前
#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 100010, M = N * 2;

int n;
int h[N], e[M], ne[M], idx;
int ans;

void add(int a, int b)  // 添加一条边a->b
{
    e[idx] = b, ne[idx] = h[a], h[a] = idx ++ ;
}

int dfs(int u, int father)
{
    int sz = 1;
    for (int i = h[u]; ~i; i = ne[i])
    {
        int j = e[i];
        if (j == father) continue;
        int s = dfs(j, u);
        if (s % 2 == 0) ans ++ ;
        sz += s;
    }
    return sz;
}

int main()
{
    scanf("%d", &n);

    if (n % 2)
    {
        puts("-1");
        return 0;
    }

    memset(h, -1, sizeof h);

    for (int i = 0; i < n - 1; i ++ )
    {
        int a, b;
        scanf("%d%d", &a, &b);
        add(a, b), add(b, a);
    }

    dfs(1, -1);

    printf("%d\n", ans);
    return 0;
}


活动打卡代码 AcWing 3988. 不同的数

yxc
1天前
#include <iostream>
#include <cstring>
#include <algorithm>
#include <unordered_map>

using namespace std;

int n, k;
unordered_map<int, int> mp;

int main()
{
    cin >> n >> k;
    for (int i = 1; i <= n; i ++ )
    {
        int x;
        cin >> x;
        mp[x] = i;
    }

    if (mp.size() < k) puts("NO");
    else
    {
        puts("YES");
        int cnt = 0;
        for (auto [x, v]: mp)
        {
            if ( ++ cnt > k) break;
            cout << v << ' ';
        }
    }

    return 0;
}



yxc
5天前

本题对网络流中可行流流量的定义:

$|f| = \sum_{(s, v) \in E}f(s, v) - \sum_{(u, s) \in E}f(u, s)$

即可行流流量 = 从源点流出的流量 - 流入源点的流量,可以为负值。



活动打卡代码 Linux 5.9. homework_9

yxc
5天前
ssh myserver
cd homework
mkdir lesson_5
cd lesson_5

git clone git@git.acwing.com:yxc/homework.git


活动打卡代码 Linux 5.8. homework_8

yxc
5天前
git merge dev  # 将dev分支合并到当前分支

vim readme.txt

***
111
333
555
444
***

git add .
git commit -m "fix conflicts"


活动打卡代码 AcWing 5.7. homework_7

yxc
5天前
git checkout master  # 切换回master分支

vim readme.txt

***
111
333
555
***

git add .
git commit -m "add 555"


活动打卡代码 Linux 5.6. homework_6

yxc
5天前
git checkout -b dev
vim readme.txt
***
111
333
444
***

git add .
git commit -m "add 444"


活动打卡代码 Linux 5.5. homework_5

yxc
5天前

本地操作

git remote add origin git@git.acwing.com:yxc/homework.git
git push -u origin master


活动打卡代码 Linux 5.4. homework_4

yxc
5天前
rm problem2 -r
mkdir problem3
cd problem3
vim main.cpp
***
#include <iostream>

using namespace std;

const int N = 1010;

int n, m;
int f[N];

int main()
{
    cin >> n >> m;

    while (n -- )
    {
        int v, w;
        cin >> v >> w;
        for (int j = v; j <= m; j ++ )
            f[j] = max(f[j], f[j - v] + w);
    }

    cout << f[m] << endl;
    return 0;
}
***

cd ..
vim readme.txt
***
111
333
***

git add .
git commit -m "many operations"


活动打卡代码 AcWing 5.3. homework_3

yxc
5天前
mkdir problem1 problem2
cd problem1
vim main.cpp
***
#include <iostream>

using namespace std;

int main()
{
    int a, b;
    cin >> a >> b;
    cout << a + b << endl;
    return 0;
}
***
cd ../problem2
vim main.cpp
***
#include <iostream>

using namespace std;

const int N = 1010;

int n, m;
int f[N];

int main()
{
    cin >> n >> m;
    while (n -- )
    {
        int v, w;
        cin >> v >> w;
        for (int j = m; j >= v; j -- )
            f[j] = max(f[j], f[j - v] + w);
    }

    cout << f[m] << endl;

    return 0;
}
***
cd ..
git add .
git commit -m "add problem1 problem2"