今天大部分时间都花在了上一场沈阳站的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(一)相关推荐

  1. 2022 ICPC Gran Premio de Mexico 1ra Fecha 题解

    A 线性基 由于数组异或和固定,因此异或和为奇数的位置可以不用考虑,无论如何分,总是只能有1个为奇数,总贡献不变. 考虑异或和为偶数的位置,利用线性基求其中一部分尽可能大的结果,另一部分结果相同. # ...

  2. 2022 ICPC Gran Premio de Mexico 1ra Fecha (B、D、E、F)

    小技巧: stoi(str,0,2) 将从0开始的二进制串转化为十进制串 不是标准函数,慎用(一般应该没问题吧--) 本次补的题应该都是铜.银牌题,可能欧洲场简单很多 D. Different Pas ...

  3. 训练记录番外篇(2):2022 ICPC Gran Premio de Mexico 2da Fecha

    2022 ICPC Gran Premio de Mexico 2da Fecha 2022.10.3 之前训得ak场,个人认为很edu. (顺便一提,可能这个训练记录番外系列的比赛都非常edu,十分 ...

  4. 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 ...

  5. 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 ...

  6. 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 ...

  7. 2022 ICPC Gran Premio de Mexico Repechaje 题解

    目录 A. Average Walk(签到) 题意: 思路: 代码: C. Company Layoffs(签到) 题意: 思路: 代码: D. Denji1(模拟/二分) 思路: 代码: K. Ke ...

  8. 【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} p1c1​​p2c2​​⋯pmc ...

  9. 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 ...

最新文章

  1. 不同的设计模式的特点总结
  2. open python语言实现 pdf_使用python操作Pdf代码实现
  3. Mac OS使用技巧之八:Dock栏使用技巧
  4. 数据结构与算法--B树原理及实现
  5. Android官方开发文档Training系列课程中文版:Activity测试之创建单元测试
  6. 深入理解并发的关键字-volatile
  7. 用Python调用华为云API接口发短信
  8. php安装mongo扩展,php安装mongo扩展和mongodb扩展
  9. 主从reactor 多线程模型
  10. 阿里程序员双11加班吃什么?
  11. 浅谈语音识别技术的发展趋势与应用前景
  12. mschart控件 用法
  13. 怎样去除抖音短视频的水印,快速去除视频水印的方法
  14. 【慕课笔记】第一章 JAVA初体验 第3节 使用记事本编写JAVA程序
  15. Hopfield 神经网络 笔记
  16. 学会3招缓解家务病 身体才能更健康
  17. 了解AMD处理器的OPN编号
  18. 2017年即将过半 免费OA系统行业OA厂商大转变
  19. 做爬虫,JS 逆向了解一下
  20. Husky仿真环境配置

热门文章

  1. Android 经典笔记之五:DownloadManager下载管理器介绍
  2. 学计算机听课不重要,评课常用语50条,再也不怕评课了!
  3. i.MX6ULL终结者电容触摸实验程序设计
  4. Kanzi学习-待继续更新
  5. STM32F4 CAN总线通信资料参考,提供源码参考快速上手CAN总线通信
  6. vue-devtools 具体使用配置详情
  7. JfreeChart常用图形实现
  8. 为什么说学web前端是IT互联网时代的不二选择?
  9. VUE3 响应式 API 之 toRef 与 toRefs
  10. 定制交友盲盒软件 交友盲盒软件开发 交友软件系统开发