2022 ICPC Gran Premio de Mexico 1ra Fecha(一)
今天大部分时间都花在了上一场沈阳站的L题上了,一个树上背包+容斥原理,看了好久才理解,就不硬敲上了,再想几天在写题解。然后今天自己写了场ICPC墨西哥站的
ICPC Gran Premio de Mexico 1ra Fecha
H. Hog Fencing
签到题,考察了基本不等式这个小知识点。
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define For(i,a,b) for(i=(a);i<=(b);++i)
#define ios (ios::sync_with_stdio(false),cin.tie(0),cout.tie(0))
using namespace std;
const int N=7e5+5;
const int inf=1e18;
const int mod=1e9+7;
/*
int fac[40];
int qpow(int a,int b){int res=1;while(b){if(b&1) res=res*a%mod;a=a*a%mod;b>>=1;}return res;
}
int getinv(int x){return qpow(x,mod-2);}
int C(int a,int b)
{return (fac[a]*getinv(fac[a-b])%mod)*getinv(fac[b])%mod;
}*/
double n;void solve()
{cin>>n;double g=(floor(n*n/16));int k=(int)sqrt(g);if(k*(k+1)<=g)cout<<k*(k+1)<<endl;elsecout<<k*k<<endl;
}
signed main()
{ios;//int T;cin>>T;//while(T--)solve();return 0;
}
I. Isabel’s Divisions
签到题,stoi可将字符串转化为10进制数,真是个好工具。
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define For(i,a,b) for(i=(a);i<=(b);++i)
#define ios (ios::sync_with_stdio(false),cin.tie(0),cout.tie(0))
using namespace std;
const int N=7e5+5;
const int inf=1e18;
const int mod=1e9+7;
/*
int fac[40];
int qpow(int a,int b){int res=1;while(b){if(b&1) res=res*a%mod;a=a*a%mod;b>>=1;}return res;
}
int getinv(int x){return qpow(x,mod-2);}
int C(int a,int b)
{return (fac[a]*getinv(fac[a-b])%mod)*getinv(fac[b])%mod;
}*/
int n;
string s;void solve()
{cin>>s;int g=stoi(s);n=s.length();s=" "+s;int ans=0;for(int i=1;i<=n;i++){if(s[i]=='0') continue;if(g%(s[i]-'0')==0)ans++;}cout<<ans<<endl;
}
signed main()
{ios;//int T;cin>>T;//while(T--)solve();return 0;
}
J. Jeffrey’s ambition
第一个想法是用二分图去写,看了下时限0.3秒,但还是想用带时间戳的二分图试一下,不出意外,tle了,但是!!!问题出现在longlong上,关掉就可以过。
#include<bits/stdc++.h>
//#define int long long
#define endl '\n'
#define For(i,a,b) for(i=(a);i<=(b);++i)
#define ios (ios::sync_with_stdio(false),cin.tie(0),cout.tie(0))
using namespace std;
const int N=7e6+5;
const int inf=1e18;
const int mod=998244353;
/*
int fac[40];
int qpow(int a,int b){int res=1;while(b){if(b&1) res=res*a%mod;a=a*a%mod;b>>=1;}return res;
}
int getinv(int x){return qpow(x,mod-2);}
int C(int a,int b)
{return (fac[a]*getinv(fac[a-b])%mod)*getinv(fac[b])%mod;
}*/
int n,m,cnt,head[10005],link[10005],used[10005],ans,now;
struct node
{int to,nxt;
}e[N];
void add(int u,int v)
{e[++cnt].to=v;e[cnt].nxt=head[u];head[u]=cnt;
}
int dfs(int u)
{for(int i=head[u];i;i=e[i].nxt){int v=e[i].to;if(used[v]!=now){used[v]=now;if(link[v]==-1||dfs(link[v])){link[v]=u;return 1;}}}return 0;
}
void hungary()
{for(int i=0;i<=m;i++) link[i]=-1;for(int i=1;i<=n;i++){now++;if(dfs(i)) ans++;}
}
void solve()
{cin>>n>>m;for(int i=1;i<=n;i++){int k;cin>>k;for(int j=1;j<=k;j++){int v;cin>>v;add(i,v);}}hungary();int g=0;for(int i=1;i<=m;i++)if(link[i]==-1) g++;cout<<g<<endl;
}
signed main()
{ios;//int T;cin>>T;//while(T--)solve();return 0;
}
最大流写法:核心在与建图
#include<bits/stdc++.h>
//#define int long long
#define endl '\n'
#define For(i,a,b) for(i=(a);i<=(b);++i)
#define ios (ios::sync_with_stdio(false),cin.tie(0),cout.tie(0))
using namespace std;
const int N=7e5+5;
const int inf=1e18;
const int mod=998244353;
/*
int fac[40];
int qpow(int a,int b){int res=1;while(b){if(b&1) res=res*a%mod;a=a*a%mod;b>>=1;}return res;
}
int getinv(int x){return qpow(x,mod-2);}
int C(int a,int b)
{return (fac[a]*getinv(fac[a-b])%mod)*getinv(fac[b])%mod;
}*/
struct edge
{int to,c,nxt;
}e[N*10];
int n,m,r[N],c[N],s,t,sum;
int head[N],idx=1;
int d[N],cur[N];
void add(int a,int b,int c)
{e[++idx]={b,c,head[a]};head[a]=idx;
}
bool bfs()
{memset(d,0,sizeof d);queue<int>q;q.push(s);d[s]=1;while(q.size()){int u=q.front();q.pop();for(int i=head[u];i;i=e[i].nxt){int v=e[i].to;if(d[v]==0&&e[i].c){d[v]=d[u]+1;q.push(v);if(v==t) return 1;}}}return 0;
}
int dfs(int u,int mf)
{if(u==t) return mf;int sum=0;for(int i=cur[u];i;i=e[i].nxt){cur[u]=i;int v=e[i].to;if(d[v]==d[u]+1&&e[i].c){int f=dfs(v,min(mf,e[i].c));e[i].c-=f;e[i^1].c+=f;sum+=f;mf-=f;if(mf==0) break;}}if(sum==0) d[u]=0;return sum;
}
int dinic()
{int flow=0;while(bfs()){memcpy(cur,head,sizeof head);flow+=dfs(s,inf);}return flow;
}
void solve()
{cin>>n>>m;s=0,t=n+m+1;for(int i=1;i<=n;i++)add(0,i,1),add(i,0,0);for(int i=1;i<=m;i++)add(i+n,t,1),add(t,i+n,0);for(int i=1;i<=n;i++){int k;cin>>k;for(int j=1;j<=k;j++){int v;cin>>v;add(i,n+v,1),add(n+v,i,0);}}int ans=dinic();cout<<m-ans<<endl;
}
signed main()
{//ios;//int T;cin>>T;//while(T--)solve();return 0;
}
K. Kilo Waste
一个完全背包,预处理出1~50000中的数字,判断每个数能否到达。
有一点读错了,低了假题,wa了一次。需要注意的是,浪费是指买多了,如果米买少了,不是浪费,此处理解错了。
#include<bits/stdc++.h>
//#define int long long
#define endl '\n'
#define For(i,a,b) for(i=(a);i<=(b);++i)
#define ios (ios::sync_with_stdio(false),cin.tie(0),cout.tie(0))
using namespace std;
const int N=7e5+5;
const int inf=1e18;
const int mod=998244353;
/*
int fac[40];
int qpow(int a,int b){int res=1;while(b){if(b&1) res=res*a%mod;a=a*a%mod;b>>=1;}return res;
}
int getinv(int x){return qpow(x,mod-2);}
int C(int a,int b)
{return (fac[a]*getinv(fac[a-b])%mod)*getinv(fac[b])%mod;
}*/
int k,p,a[N],f[N];
void solve()
{cin>>k>>p;int mi=inf;for(int i=1;i<=p;i++)cin>>a[i],mi=min(mi,a[i]);f[0]=1;for(int i=1;i<=p;i++){for(int j=a[i];j<=50000+mi;j++)f[j]=max(f[j],f[j-a[i]]);}while(k--){int x;cin>>x;int g=0,s=0;while(g<=mi&&f[x+g]==0) g++;cout<<g<<endl;}
}
signed main()
{//ios;//int T;cin>>T;//while(T--)solve();return 0;
}
2022 ICPC Gran Premio de Mexico 1ra Fecha(一)相关推荐
- 2022 ICPC Gran Premio de Mexico 1ra Fecha 题解
A 线性基 由于数组异或和固定,因此异或和为奇数的位置可以不用考虑,无论如何分,总是只能有1个为奇数,总贡献不变. 考虑异或和为偶数的位置,利用线性基求其中一部分尽可能大的结果,另一部分结果相同. # ...
- 2022 ICPC Gran Premio de Mexico 1ra Fecha (B、D、E、F)
小技巧: stoi(str,0,2) 将从0开始的二进制串转化为十进制串 不是标准函数,慎用(一般应该没问题吧--) 本次补的题应该都是铜.银牌题,可能欧洲场简单很多 D. Different Pas ...
- 训练记录番外篇(2):2022 ICPC Gran Premio de Mexico 2da Fecha
2022 ICPC Gran Premio de Mexico 2da Fecha 2022.10.3 之前训得ak场,个人认为很edu. (顺便一提,可能这个训练记录番外系列的比赛都非常edu,十分 ...
- 2021 ICPC Gran Premio de Mexico 1ra Fecha
C.Cypher Decypher 题意 找 [ i , j ] [i,j] [i,j]区间中有多少个质数 思路 数据范围为 1 ≤ i ≤ j ≤ 1 0 6 1\le i\le j\le 10^6 ...
- 2022 ICPC Gran Premio de Mexico 2da Fecha Final standings - K. Krystalova‘s Trivial Problem
K. Krystalova's Trivial Problem time limit per test1 second memory limit per test256 megabytes input ...
- 2023 ICPC Gran Premio de Mexico 1ra Fecha
待更新 目录 1 A Aliases B Bucket storing D Dynamic Collection E Employees Bonus G Growing game J Jumping ...
- 2022 ICPC Gran Premio de Mexico Repechaje 题解
目录 A. Average Walk(签到) 题意: 思路: 代码: C. Company Layoffs(签到) 题意: 思路: 代码: D. Denji1(模拟/二分) 思路: 代码: K. Ke ...
- 【2021 ICPC Gran Premio de Mexico 2da Fecha F】Flipped Factorization 题解
题目大意 设 x x x 的质因数分解为 p 1 c 1 p 2 c 2 ⋯ p m c m p_1^{c_1}p_2^{c_2}\cdots p_m^{c_m} p1c1p2c2⋯pmc ...
- 2021 ICPC Gran Premio de Mexico 2da Fecha(C,D,G,I)
题目 C. Cut the Deck D. Dislike the Raisins G. Grid of Letters I. Integer Multiplicative Persistence C ...
最新文章
- 不同的设计模式的特点总结
- open python语言实现 pdf_使用python操作Pdf代码实现
- Mac OS使用技巧之八:Dock栏使用技巧
- 数据结构与算法--B树原理及实现
- Android官方开发文档Training系列课程中文版:Activity测试之创建单元测试
- 深入理解并发的关键字-volatile
- 用Python调用华为云API接口发短信
- php安装mongo扩展,php安装mongo扩展和mongodb扩展
- 主从reactor 多线程模型
- 阿里程序员双11加班吃什么?
- 浅谈语音识别技术的发展趋势与应用前景
- mschart控件 用法
- 怎样去除抖音短视频的水印,快速去除视频水印的方法
- 【慕课笔记】第一章 JAVA初体验 第3节 使用记事本编写JAVA程序
- Hopfield 神经网络 笔记
- 学会3招缓解家务病 身体才能更健康
- 了解AMD处理器的OPN编号
- 2017年即将过半 免费OA系统行业OA厂商大转变
- 做爬虫,JS 逆向了解一下
- Husky仿真环境配置