Codeforces Round #360 (Div. 1)

人工智能面试总结-分类与聚类 目录说说常用的分类算法,以及各自的优缺点?说说为什么正确率有时不能有效评估分类算法?说说什么样的分类器最好?说说聚类算法有哪些衡量标准?(选看)各聚类算法性能比较汇总说说什么是聚类,你知道哪些聚类算法?具体展开介绍你知道的聚类算法?说说K-Means聚类算法流程?说说K-Means聚类算法如何调优?说说K-Means聚类算法如何选择初始点?说说K-Means聚类聚的是特征还是样本?说说K-Means聚类的特征距离是如何计算的?说说聚类与分类的区别?手撕K-Means聚类 说说常用的分类算法,以及各自的优缺点 阅读详情

B. Remainders Game

  如果两个数模所有 ci 结果一样,这两个数的差一定是 LCM(ci) 的整数倍。要使得能够唯一确定一个 xmodk , LCM(ci) 必须是 k 的整数倍。

#include <bits/stdc++.h>

using namespace std;

#define ll long long

int c[1000010];

bool notP[1000010];
int primes[1000010];
int sz = 0;

int cnt[1000010];

int main(){
    for(int i=2;i<=1000;i++){
        for(int j=i+i;j<=1000000;j+=i){
            notP[j] = 1;
        }
    }
    for(int i=2;i<=1000;i++){
        if(!notP[i]){
            primes[sz++] = i;
        }
    }

    int n,k;
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        scanf("%d",&c[i]);
    }
    for(int i=1;i<=n;i++){
        for(int j=0;j<sz;j++){
            int cur = 0;
            while(c[i]%primes[j] == 0){
                cur++;
                c[i] /= primes[j];
            }
            cnt[primes[j]] = max(cnt[primes[j]],cur);
        }
        cnt[c[i]] = 1;
    }
    bool ok = 1;
    for(int i=0;i<sz;i++){
        int cur = 0;
        while(k%primes[i] == 0){
            cur++;
            k /= primes[i];
        }
        if(cnt[primes[i]]<cur){
            ok = 0;
        }
    }
    if(cnt[k]<1){
        ok = 0;
    }
    if(ok){
        cout<<"Yes"<<endl;
    }else{
        cout<<"No"<<endl;
    }
    return 0;
}

C. The Values You Can Make

  就是存在性背包,多弄一维,作为C题实在太水了。

#include <bits/stdc++.h>

using namespace std;

#define ll long long

const int mod = 1e9+7; 

const int maxn = 1000010;

bool dp2[500*500+10][1010];
int c[555];

int ans[500*500+10];

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

    dp2[0][0] = 1;
    for(int i=1;i<=n;i++){
        for(int j=500;j>=0;j--){
            for(int kk=500;kk>=0;kk--){
                if(dp2[j][kk]){
                    if(kk+c[i]<=k)dp2[j][kk+c[i]] = 1;
                    dp2[j+c[i]][kk] = 1;
                }
            }
        }
    }

    int sz=0;
    for(int i=0;i<=k;i++){
        for(int j=0;j<=k;j++){
            if(dp2[i][j] && i+j==k){
                ans[sz++] = i;
            }
        }
    }
    cout<<sz<<endl;
    for(int i=0;i<sz;i++){
        printf("%d ",ans[i]);
    }

    return 0;
}

D. Dividing Kingdom II

  对所有边按从长到短排序,对于每个询问,扫一遍边,利用带关系的并查集,把长的优先分在不同部分,直到不能再分时的边长就是答案。(关系并查集好容易写挫)

#include <bits/stdc++.h>

using namespace std;

#define ll long long

struct Edge{
    int u,v,w;
    int id;
    bool operator<(const Edge& o)const{
        return w>o.w;
    }
}edges[500000];
int n,m,q;

int r[1111];
int p[1111];
bool vis[1111];

void init(){
    memset(vis,0,sizeof(vis));
    for(int i=1;i<=n;i++){
        p[i] = i;
        r[i] = 0;
    }
}

pair<int,int> Find(int u){
    if(u==p[u]){
        return make_pair(u,0);
    }

    int v = u;

    while(v!=p[v]){
        v = p[v];
        r[u] ^= r[v];
    } 
    p[u] = v;
    return make_pair(p[u],r[u]);
    pair<int,int> pp = Find(p[u]);
    r[u] = r[p[u]]^r[u];
    p[u] = pp.first;
    return make_pair(p[u],r[u]);
}

void Union(int u,int v,int relation){
    pair<int,int> fu = Find(u);
    pair<int,int> fv = Find(v);
    p[fu.first] = fv.first;

    r[fu.first] = relation^r[u]^r[v];
}

int Relation(int u,int v){
    return r[u]^r[v];
}

int main(){
    cin>>n>>m>>q;
    for(int i=1;i<=m;i++){
        scanf("%d %d %d",&edges[i].u,&edges[i].v,&edges[i].w);
        edges[i].id = i;
    }
    sort(edges+1,edges+m+1);

    for(int i=1;i<=q;i++){
        int ans = -1;
        int l,r;
        scanf("%d %d",&l,&r);
        init();
        for(int j=1;j<=m;j++){
            if(edges[j].id<l || edges[j].id>r){
                continue;
            }
            int u = edges[j].u;
            int v = edges[j].v;

            if(vis[u] && vis[v]){
                if(Find(u).first != Find(v).first){
                    Union(u,v,1);
                }else{
                    if(Relation(u,v) == 0){
                        ans = edges[j].w;
                        break;
                    }
                }
            }else if(vis[u] && !vis[v]){
                Union(v,u,1);
                vis[v] = 1;
            }else if(!vis[u] && vis[v]){
                Union(u,v,1);
                vis[u] = 1;
            }else{
                Union(u,v,1);
                vis[u] = vis[v] = 1;
            }
        }

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

    return 0;
}
Dify框架面试内容整理-如何进行Dify的二次开发? 无论是轻量修改界面,还是深度集成自定义模型、Agent、知识库,你都可以很方便地进行二次开发。,你可以基于它的开源架构对功能进行扩展、集成第三方服务、修改界面风格,甚至定制新的AI工作流程。前端:Node.js >= 16,React + TypeScript + Tailwind。接入自己的模型API(如:调用LLaMA、Baichuan、ChatGLM)。修改路径:/api/app/services/providers/可接入你自己的向量数据库(Qdrant、Milvus、FAISS) 阅读详情

相关推荐

Power BI应用案例:淘宝用户行为分析实战

一、案例背景 基于千万级的淘宝用户的使用记录,对淘宝用户的行为进行分析,具体指标包括:日PV、日UV、小时PV、小时UV、不同用户行为的PV、用户购买次数分布、用户购买频次分布、活跃用户消费情况等。通过本案例,可以基本看看Power BI都能分析达到怎么样的效果。 二、数据来源及结构 阿里天池官方发布的1万用户在2014年双十二期间的行为记录,数据量达1200万+。 数据下载地址:...

灰哥数据智能的专栏 1万+

Codeforces Round #360 (Div. 1)A:二分图判断

A. NP-Hard Problem time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Recently, Pari and Arya did some researc

加载中... 678

用Python爬取公众号历史所有文章,看这篇就够了

手把手教你爬取公众号历史所有文章

u010522887的专栏 1万+

Codeforces Round #360 (Div. 1), problem: (A) NP-Hard Problem(二分图判定+dfs+染色法套用)+ 【二分图简介】

Codeforces Round #360 (Div. 1), problem: (A) NP-Hard Problem 题目大意 一个无向图,使得顶点集V可以分割为两个互不相交的子集A,B,使得所有边两端分别属于两个子集A,B。 题解 其实就是二分图求解过程 采用染色法 判断给你的无向边是否能形成无向图 如果不能形成二分图就输出-1 还有需要注意的一点是题目中对于孤儿结点没有任何要求 ...

超逸の学习技术博客 541

DSH-Work:一个让DeepSeek下载即用的Harness客户端

使用大模型工具时,环境配置往往比模型本身更让人头疼。DeepSeek Harness作为一类封装层,将模型调用、上下文管理、参数控制等复杂细节统一收拢,对外提供简洁操作入口。开源的DSH-Work正是这样一款Harness客户端,它通过自带运行时与保守默认配置,实现了下载即用、免配环境的目标,让使用者无需掌握Python、CUDA等专业知识即可快速连接DeepSeek云端或本地服务。对于非技术背景的用户,它降低了AI工具的使用门槛;对于开发者,它把时间从环境排错中解放出来,更专注于提示词调优与工作流设计。无

weixin_29048309的博客 345

学习笔记:物理信息神经网络(PINN)

PINN 的强大在于它打破了传统数值方法的限制,将神经网络的非线性拟合能力与物理方程的严谨性结合起来。它在处理高维、数据稀缺、复杂物理约束的场景下尤其出色。当然,PINN 也有收敛慢、梯度消失等挑战,比如,复杂 PDE 可能导致梯度传播困难,收敛慢(梯度消失)、于具有快速变化特征的系统,如冲击波,标准 PINN 可能精度不足,需要改进策略,比如自适应采样或多尺度特征提取。但随着研究深入,这些问题正在不断被解决。物理或化学方程为什么往往是偏微分方程?什么是物理信息神经网络(PINN)?x_%7Bi%7D。

qq_52635735的博客 1万+

Codeforces Round #360 (Div. 1)C - The Values You Can Make

链接:http://codeforces.com/contest/687/problem/C 题意:给定n个数和一个k,对于每一个和为k的集合{a[1],a[2],...a[g]}都能凑成若个数。求所有的集合能凑出哪些数。 分析:我们设dp[i][j][k]表示前i个数在凑成j的数中能否凑出k,为0/1。那么状态直接转移即可。O(n^3)。 代码: #include #include #i

Fsss 629

Ubuntu虚拟机磁盘扩容实战:5分钟搞定gparted分区调整(附常见错误修复)

本文详细介绍了在Ubuntu虚拟机中使用gparted工具进行磁盘扩容的实战步骤。针对常见的交换分区阻碍问题,提供了从禁用交换空间、删除旧分区、调整主分区大小到重建交换分区并更新系统配置的完整解决方案,帮助用户在5-10分钟内安全高效地解决磁盘空间不足的难题。

1a2s3d4f5g的博客 670

Codeforces Round #360 (Div. 1) B. Remainders Game【lcm】

题目链接:https://codeforc.es/contest/687/problem/B 题目大意:有两个数x,kx,kx,k,给出nnn个数c1,c2,…,cnc_1,c_2,\dots,c_nc1​,c2​,…,cn​,可以知道x%cix\%c_ix%ci​的值(但是未给出),问你能否唯一确定x%kx\%kx%k的值。 思路:假设不能唯一确定x%kx\%kx%k的值,那么就假定存在两个数x...

weixin_43499182的博客 208

【漆学军】MT4进阶到MT5速成之路(2)获取持仓

MT5在持仓获取上,要比MT4复杂些,分两部分,获取持仓和挂单采用了不同的方法。 一、获取持仓中的buy和sell单 int b=0;//获取buy单个数 int s=0;//获取sell单个数 double lot_total_buy=0;//获取持仓中buy单的总手数 double lot_total_sell=0;//获取持仓中sell单的总手数 for(int i=0; i<PositionsTotal(); i++) { ulong ticket=Positi

漆学军的编程笔记 1625

Latex | IEEE双栏排版中长公式的排版

IEEE双栏排版中,有时候公式过于长了,过宽,导致单栏排版不下。

qq_43466146的博客 1万+

Codeforces Round #360 (Div. 1)B - Remainders Game

链接:http://codeforces.com/contest/687/problem/B 题意:给定n个整数a[i]和一个k,对于每一个整数x会有一个数组{x%a[1],x%a[2]....,x%a[n]},要求判断是否能根据一个数组判断出x%k。 分析:我们可以将数组的每一位分开看,显然a[i]的循环节是a[i],那么我们就能知道整体的循环节即最小公倍数lcm。那么我们只需要判断lcm能

Fsss 412

1.4 你绝对不能错过的天气查询工具:MCP 标准化接入实战

本文介绍了如何构建一个符合MCP标准的天气查询服务。通过FastMCP框架集成OpenWeatherMap API,实现实时天气、天气预报和历史天气查询功能。文章详细展示了从环境准备、插件设计到控制器实现的完整流程,包括如何定义工具函数、配置路由和中间件。同时讲解了如何将MCP服务封装为LangChain工具并与DeepSeek等大模型集成,还涵盖了缓存、限流等高级特性。该示例演示了如何将任意API标准化为MCP服务,为Agent应用提供统一接口。

yonggeit的博客 3047

Codeforces Round #360 (Div. 1)A - NP-Hard Problem

链接:http://codeforces.com/contest/687/problem/A 题意:给定一个n个点的图,要求将所有的点分成2部分使得每一天边连着的两个点都不在同一部分中,无解输出-1。 分析:直接dfs01染色就是了。 代码: #include #include #include #include #include #include #include #include #i

Fsss 404

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Codeforces Round #360 (Div. 1) C. The Values You Can Make(DP)

题目链接:点击打开链接 思路: 用d[i][j][k]表示, 前i个数, 选取的数之和为j, 再次选取的数之和为k的种类数。  那么当这种情况存在时, 我们把此时的k保存即可。 细节参见代码: #include #include #include #include #include #include #include #include #include #include

AC_Arthur的专栏 1554

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Codeforces Round #360 (Div. 1) A. NP-Hard Problem(二分图染色)

题目链接:点击打开链接 思路:根据题目描述, 就是找两个不相交点集使得对于每一条边至少有一个顶点在点集中, 那么显然对于每条边必须是一个点在A集合, 一个点在B集合, 即二分图染色裸题。 WA了一次, 因为有可能存在好几个连通图。 细节参见代码: #include #include #include #include #include #include #include #i

AC_Arthur的专栏 1549

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Codeforces Round #360 (Div. 1) C. The Values You Can Make(DP)

题目链接 思路:dp【i】【j】代表硬币总数为i,子集和为j。当dp【i】【j】为真时,显然dp[i+a[k]][j]和dp[i+a[k]][j+a[k]]也为真。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=1005; bool dp[maxn][maxn]={f...

qq_42479630的博客 177

Codeforces Round #360 (Div.1) C.The Values You Can Make

原题网址:http://codeforces.com/contest/687/problem/C 用f[i][j][k]=0/1表示用前i种货币,付出j圆,j圆中又有k圆是否可行。 方程:f[i][j][k]=f[i-1][j][k] or f[i-1][j-c[i]][k] or f[i-1][j-c[i]][k-c[i]] 注意不要MLEvar f,g:array[-501..50

MintGreen 437

Codeforces Round #360 (Div. 1) 题解(待续)

NP-Hard Problem Remainders Game The Values You Can MakeNP-Hard Problem给一幅图,把点集分为两份,使每一份都是原图的顶点覆盖 判定1副图是不是二分图,这并不是np-hard#include<bits/stdc++.h> using namespace std; #define For(i,n) for(int i=1;i<=n;i

nike0good |Oier&ACMer | 熟能生巧 488

CodeForces 360E Levko and Game(Codeforces Round #210 (Div. 1))

题意:有一些无向边m条权值是给定的k条权值在[l,r]区间可以由你来定,一个点s1 出发一个从s2出发 问s1 出发的能不能先打到f 思路:最短路。 首先检测能不能赢 在更新的时候 如果对于一条边 a->b 如果dis1[a] <dis2[a] 那么选择这条边就选择 l 因为这条边对于s1有利 如果两个起点都选择了这条边 则说明s1 赢定了,所以要让他们尽量走这条,...

weixin_34413065的博客 156

Codeforces Round #360 (Div. 1) D. Dividing Kingdom II 暴力并查集

D. Dividing Kingdom II 题目连接: http://www.codeforces.com/contest/687/problem/D Description Long time ago, there was a great kingdom and it was being ruled by The Great Arya and Pari The Great. These two...

weixin_30307921的博客 146

Codeforces Round #360 (Div. 1) D 并查集判奇环

链接:戳这里 D. Dividing Kingdom II time limit per test6 seconds memory limit per test256 megabytes inputstandard input outputstandard output Long time ago, there was a great kingdom and it wa

Cross 842

Codeforces Round #360 (Div. 1) D. Dividing Kingdom II

题意 给你一张n个点m条边的无向图,边有边权wi。有q个询问,每次给出l r,问你:如果只保留编号在[l,r]中的边,你需要将所有点分成两个集合,使得这个划分的代价最小,问最小代价是什么。一个划分的代价是指,对于所有两端点在同一集合中的边,这些边的边权最大值。如果没有端点在同一集合中的边,则输出-1。 题意来自CQzhangyu。。。 题解 做法很妙啊。。 一个显然的做法是qmqmq...

OZY的博客 286

Codeforces Round #360 (Div. 1) B. Remainders Game(中国剩余定理)

题目链接:点击打开链接 思路: 中国剩余定理, 请看维基百科:点击打开链接 该题我们由已知可以写出n个线性同余方程:x % c[i] == a[i] % c[i]。 那么中国剩余定理中明确指出。  我们可以知道 x % lcm(c[i]) 的值。   那么如果lcm可以整除k而不产生余数, 我们也就知道了x % k的值, 它就等于 x % lcm的值。 细节参见代码: #include

AC_Arthur的专栏 1492

Codeforces Round #360 (Div. 1)A (二分图&dfs染色)

题目链接:http://codeforces.com/problemset/problem/687/A 题意:给出一个n个点m条边的图,分别将每条边连接的两个点放到两个集合中,输出两个集合中的点,若不可能则输出-1; 思路:通过画图我们不难发现,图中没有出现长度为奇数的环则是可行的,反之则是不行的. 对于这点我们可以直接用dfs搜索+染色,对于当前标记为1的点,我们将其所有儿子标...

weixin_30375427的博客 77
上一篇: something about Educational Codeforces Round 11
下一篇: 2016 计蒜之道 复赛 A
squee_spoon
博客等级 码龄14年 61粉丝 455原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值