2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1)

2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1)

思路:

A Exam

思路:水题

代码:

#include<bits/stdc++.h>
using namespace std;
int main(){int k;scanf("%d",&k);char s1[1010],s2[1010];scanf("%s%s",s1,s2);int same=0;int n=strlen(s1);for(int i=0;i<n;i++){same+=s1[i]==s2[i];}cout<<min(same,k)+min(n-same,n-k)<<endl;return 0;
}
View Code

 

B Coprime Integers

思路:容斥

代码:

#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize(4)
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pi acos(-1.0)
#define LL long long
//#define mp make_pair
#define pb push_back
#define ls rt<<1, l, m
#define rs rt<<1|1, m+1, r
#define ULL unsigned LL
#define pll pair<LL, LL>
#define pli pair<LL, int>
#define pii pair<int, int>
#define piii pair<pii, int>
#define mem(a, b) memset(a, b, sizeof(a))
#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define fopen freopen("in.txt", "r", stdin);freopen("out.txt", "w", stout);
//headconst int N = 1e7 + 5;
LL g[N];
LL solve(int a, int b) {if(a > b) swap(a, b);if(a == 0) return 0;for (int i = a; i >= 1; i--) {g[i] = 1LL * (a/i) * (b/i);for (int j = i+i; j <= a; j += i) g[i] = g[i] - g[j];}return g[1];
}
int main() {int a, b, c, d;scanf("%d %d %d %d", &a, &b, &c, &d);printf("%lld\n", solve(b, d) - solve(b, c-1) - solve(a-1, d) + solve(a-1, c-1));return 0;
}
View Code

 

C Contest Setting

思路:dp

dp[i][j]表示前i种选j个的方案数

代码:

#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize(4)
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pi acos(-1.0)
#define LL long long
//#define mp make_pair
#define pb push_back
#define ls rt<<1, l, m
#define rs rt<<1|1, m+1, r
#define ULL unsigned LL
#define pll pair<LL, LL>
#define pli pair<LL, int>
#define pii pair<int, int>
#define piii pair<pii, int>
#define mem(a, b) memset(a, b, sizeof(a))
#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define fopen freopen("in.txt", "r", stdin);freopen("out.txt", "w", stout);
//headconst int MOD = 998244353;
const int N = 1e3 + 5;
LL dp[N][N];
int cnt[N], a[N], tot = 0;
map<int, int> mp;
int main() {int n, k;scanf("%d %d", &n, &k);for (int i = 1; i <= n; i++) {scanf("%d", &a[i]);if(mp.find(a[i]) == mp.end()) mp[a[i]] = ++tot, cnt[tot] = 1;else cnt[mp[a[i]]] ++;}dp[0][0] = 1;for (int i = 1; i <= tot; i++) {for (int j = 0; j <= k; j++) dp[i][j] = dp[i-1][j];for (int j = 1; j <= k; j++) dp[i][j] = (dp[i][j] + dp[i-1][j-1]*cnt[i]) % MOD;}printf("%lld\n", dp[tot][k]);return 0;
}
View Code

 

D Count The Bits

思路:dp

dp[i][j][0]表示前i位构成的数中对k取模为j的数的个数

dp[i][j][1]表示前i位构成的数中对k取模为j的数中二进制中1的个数

代码:

#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize(4)
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pi acos(-1.0)
#define LL long long
//#define mp make_pair
#define pb push_back
#define ls rt<<1, l, m
#define rs rt<<1|1, m+1, r
#define ULL unsigned LL
#define pll pair<LL, LL>
#define pli pair<LL, int>
#define pii pair<int, int>
#define piii pair<pii, int>
#define mem(a, b) memset(a, b, sizeof(a))
#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define fopen freopen("in.txt", "r", stdin);freopen("out.txt", "w", stout);
//headconst int N = 150, M = 1e3 + 5;
const int MOD = 1e9 + 9;
LL dp[N][M][2];
int main() {int k, b;scanf("%d %d", &k, &b);dp[0][0][0] = 1;dp[0][0][1] = 0;for (int i = 1; i <= b; i++) {for (int j = 0; j < k; j++) {(dp[i][(j*2)%k][0] += dp[i-1][j][0]) %= MOD;(dp[i][(j*2+1)%k][0] += dp[i-1][j][0]) %= MOD;(dp[i][(j*2)%k][1] += dp[i-1][j][1]) %= MOD;(dp[i][(j*2+1)%k][1] += dp[i-1][j][1] + dp[i-1][j][0]) %= MOD;}}printf("%lld\n", dp[b][0][1]);return 0;
}
View Code

 

E Cops And Roobers

F Rectangles

G Goat on a Rope

思路:求点到矩形的最近距离

代码:

#include<bits/stdc++.h>
using namespace std;
double cal(double x1,double y1,double x2,double y2)
{return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
int main()
{double x,y,x1,x2,y1,y2,ans=1e9;scanf("%lf%lf%lf%lf%lf%lf",&x,&y,&x1,&y1,&x2,&y2);if(x>=min(x1,x2)&&x<=max(x2,x1)) ans=min(abs(y1-y),abs(y2-y));else if(y>=min(y1,y2)&&y<=max(y1,y2)) ans=min(abs(x-x1),abs(x-x2));else ans=min(cal(x,y,x1,y1),min(cal(x,y,x2,y2),min(cal(x,y,x1,y2),cal(x,y,x2,y1))));printf("%.3f\n",ans);
}
View Code

 

H Repeating Goldbachs

思路:暴力

代码:

#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize(4)
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pi acos(-1.0)
#define LL long long
//#define mp make_pair
#define pb push_back
#define ls rt<<1, l, m
#define rs rt<<1|1, m+1, r
#define ULL unsigned LL
#define pll pair<LL, LL>
#define pli pair<LL, int>
#define pii pair<int, int>
#define piii pair<pii, int>
#define mem(a, b) memset(a, b, sizeof(a))
#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define fopen freopen("in.txt", "r", stdin);freopen("out.txt", "w", stout);
//headconst int N = 1e6 + 5;
int p[N], tot = 0;
bool not_p[N];
void seive() {for (int i = 2; i < N; i++) {if(!not_p[i]) {p[++tot] = i;}for (int j = 1; j <= tot && p[j]*i < N; j++) {not_p[p[j]*i] = true;if(i % p[j] == 0) break;}}
}
int main() {int x;scanf("%d", &x);seive();int ans = 0;while(x >= 4) {for(int i = 1; i <= tot && p[i] <= x; i++) {if(!not_p[x-p[i]]) {x = x - p[i] - p[i];ans++;break;}}}printf("%d\n", ans);return 0;
}
View Code

 

I Inversions

J Time Limits

思路:水题

代码:

#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize(4)
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pi acos(-1.0)
#define LL long long
//#define mp make_pair
#define pb push_back
#define ls rt<<1, l, m
#define rs rt<<1|1, m+1, r
#define ULL unsigned LL
#define pll pair<LL, LL>
#define pli pair<LL, int>
#define pii pair<int, int>
#define piii pair<pii, int>
#define mem(a, b) memset(a, b, sizeof(a))
#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define fopen freopen("in.txt", "r", stdin);freopen("out.txt", "w", stout);
//headconst int N = 105;
int t[N];
int n, s;
int main() {scanf("%d %d", &n, &s);for (int i = 1; i <= n; i++) scanf("%d", &t[i]);sort(t+1, t+1+n);printf("%d\n", (t[n]*s + 999) / 1000);return 0;
}
View Code

 

K Knockout

L Liars

思路:暴力

代码:

#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize(4)
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pi acos(-1.0)
#define LL long long
//#define mp make_pair
#define pb push_back
#define ls rt<<1, l, m
#define rs rt<<1|1, m+1, r
#define ULL unsigned LL
#define pll pair<LL, LL>
#define pli pair<LL, int>
#define pii pair<int, int>
#define piii pair<pii, int>
#define mem(a, b) memset(a, b, sizeof(a))
#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define fopen freopen("in.txt", "r", stdin);freopen("out.txt", "w", stout);
//headconst int N = 1e3 + 5;
pii a[N];
int main() {int n;scanf("%d", &n);for (int i = 1; i <= n; i++) scanf("%d %d", &a[i].fi, &a[i].se);int ans = -1;for (int i = 0; i <= n; i++) {int cnt = 0;for (int j = 1; j <= n; j++) {if(a[j].fi <= i && i <= a[j].se) cnt++;}if(cnt == i) ans = max(ans, i);}printf("%d\n", ans);return 0;
}
View Code

 

M Mobilization

 

转载于:https://www.cnblogs.com/widsom/p/10007965.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Prince2与PMP的区别

p2有7个原则&#xff0c;7个主题&#xff0c;7个流程&#xff0c;即37二十一。 P2有26个管理产品模板。 2009版本是经典版本&#xff0c;2017版本与2009版本内容基本没变&#xff0c;梳理了目录&#xff0c;使内容更加有可读性。 P2是非常好的项目管理方法论&#xff0c;任何…

拉取远程分支_git clone切换分支步骤,代理设置,作者信息设置

1.克隆远程仓库git clone git地址2.查看所有分支git branch –a3.切换分支git checkout branchName4.查看当前所在分支git branch5.拉取代码git pull6.提交代码git add file/folder git commit -m comment git push可能遇到的问题&#xff1a;A.error: fatal: unable to acce…

[学习笔记]半平面交

一个直线把平面分成两部分&#xff0c;就是两个半平面 处理这两个平面的交的信息&#xff0c;就是半平面交 推荐&#xff1a; 计算几何之半平面交算法模板及应用 bzoj 2618 半平面交模板学习笔记 【总结】半平面交 可以用于求任意多边形交&#xff0c;任意多边形内核。 &#x…

Project计算项目进度

1.设立根节点 2.资源列表 3.资源成本 4.基准 在任务分配状况 视图里&#xff0c;添加“基线工时”“实际工时”“BCWS(计划&#xff09;”“ACWP(实际&#xff09;”“BCWP&#xff08;挣值&#xff09;”&#xff0c;“SV(>0 提前&#xff0c;<0 延后&#xff09;”、…

jquery动态绑定事件的方法_Jquery绑定事件及动画效果

绑定事件bind(type, data, fuc)one(type, data, fuc) //只执行一次常见事件类型名称含义blur失去焦点focus获得焦点load加载resize重置大小scroll滚动unload卸载click点击dblclick双击mousedown鼠标按下mouseup鼠标弹起mousemove鼠标移动mouseover鼠标悬停mouseout鼠标移走mous…

实验 5 编写、调试具有多个段的

实验任务 &#xff08;1&#xff09; &#xff08;2&#xff09; &#xff08;3&#xff09; &#xff08;4&#xff09; 若将最后一条指令”end start“改为”end“&#xff0c;&#xff08;3&#xff09;中的程序仍然可以正常执行。 原因&#xff1a;如果不指明程序的入口&am…

hbuilderx的快捷键整理pdf_mac键盘快捷键详解,苹果电脑键盘快捷键图文教程

作为 Apple 最成熟的系统之一&#xff0c;macOS 已经成为许多人每天都在接触的生产力工具。为了帮助大家更好地了解 macOS 的生态魅力&#xff0c;我们整理了这份融合了文字图片和动图的mac键盘快捷键详解&#xff0c;希望能够帮助你掌握更多系统使用技巧。文章所有操作都基于 …

word插入图片显示不全

word插入图片&#xff0c;显示不全&#xff0c;只有部分。 调整步骤 图片尾部 光标定位到图片的尾部 单倍行距 右键&#xff0c;选择“段落”&#xff0c;行间距选择“单倍行距” 图片就完成显示了

理解 JavaScript 作用域

上一篇文章中分析了 JS 中的数据类型和变量。这一篇文章将分析作用域&#xff0c;以及回答上一篇文章中变量提升的原因。 什么是作用域 作用域是一套规则&#xff0c;保存着变量&#xff0c;等待被引擎所查找。 var a 1; console.log(a); // > 1 console.log(b); // >…

Axure原型设计导出到PDF文件

Axure 没有直接导出PDF文件的功能&#xff0c;可以通过Axure 的打印功能&#xff0c;选择PDF打印机&#xff0c;以间接的方式将原型设计导出到pdf文件里。 操作步骤 以Axure9为例 打印 Axure9---文件---打印 不要母版 预览 预览下效果&#xff0c;看下是否有不必要的内容 …

python pca降维_机器学习的降维打击

文章发布于公号【数智物语】 (ID&#xff1a;decision_engine)&#xff0c;关注公号不错过每一篇干货。来源 | SAMshare(id:SAMshare)作者 | samshare"本次主要讲解的内容就是特征降维&#xff0c;主要涉及PCA以及一些常见分析方法。"01Index一&#xff0c;PCA降维算…

参加技术培训前的辅导,选得对,学得好

最近几年&#xff0c;每年都会有人问我培训班的事情&#xff0c;我也有培训班经历&#xff0c;在软件行业工作了十多年&#xff0c;每次解答培训班的咨询我都很认真&#xff0c;也很高兴能帮到他人。 决定通过专栏的形式解答培训班常见问题&#xff0c;我把专栏取名“技术培训…

进入IT行业,要不要参加培训班?

IT行业介绍 考虑培训班无非是要入行,那IT行业好不好?IT行业当然好,看看培训班的数量就知道了。现在房产行业好赚钱,每个小区门口好几家中介门店,相同品牌的可能不止1家。不用去看网上的软文,也不用去问百度,看市场的反应,这是真实的反馈。培训班越来越多,课程越来越多…

Kubernetes在上汽集团云平台及AI方面的应用

2019独角兽企业重金招聘Python工程师标准>>> 帆一尚行成立于2015年&#xff0c;是上汽集团的全资子公司&#xff0c;建设有上海、南京、郑州&#xff08;在建&#xff09;三个数据中心&#xff0c;拥有超过4000台物理服务器&#xff0c;10PB的数据存储&#xff0c;总…

我的Java培训经历

此文讲述我的Java开发培训经历&#xff0c;来解答关心的培训费、培训节奏、就业等问题。 我在2010年参加达内Java培训&#xff0c;如今再回首那段时光&#xff0c;虽然辛苦&#xff0c;但很值得&#xff01;&#xff08;后悔参加培训班&#xff0c;大部分原因是冲动&#xff0…

python跨函数调用变量_对python中不同模块(函数、类、变量)的调用详解

首先&#xff0c;先介绍两种引入模块的方法。 法一&#xff1a;将整个文件引入 import 文件名 文件名.函数名( ) / 文件名.类名 通过这个方法可以运行另外一个文件里的函数 法二&#xff1a;只引入某个文件中一个类/函数/变量 需要从某个文件中引入多个函数或变量时&#xff0c…

软件培训技术选哪个?

要培训了,培训技术怎么选? 技术需慎重选 女怕嫁错郎,男怕入错行。后悔参加培训班,因为技术没选好的占比很高。 技术没选好会有什么影响? 近的影响是就业!远的影响是发展! 对于程序员来说,技术就是立身之本,需要慎重选择! 我在《要不要参加培训班?》文章中介绍…

django安装_技术大牛详解:Django框架之环境安装

黑马程序员视频库播妞微信号&#xff1a;boniu236传智播客旗下互联网资讯、学习资源免费分享平台虚拟环境安装:开发中问题&#xff1a;如何在同一台主机中&#xff0c;要开发多个不同的项目&#xff0c;而且需要用到同一个包的不同版本&#xff1f;尝试分析&#xff1a;在开发过…

安装 Alibaba Cloud Toolkit

IntelliJ IDEA版 JetBrains 插件市场下载 Eclipse 版 Eclipse 插件市场仓库下载 (推荐)URL 地址在线安装Maven 版 在 POM 文件中依赖 PyCharm、PhpStorm、RubyMine 和 WebStorm 版 公测中官网https://toolkit.aliyun.com 交流群&#xff08;钉钉&#xff09; 交流群&#xff08…

软件Java前端大数据培训机构怎么选?

先看这篇文章《要不要参加培训班》。 选技术就像选另一半,那选培训机构就是选另一半的家庭。另一半家庭好与不好,与婚后幸福生活息息相关。 选培训机构的几个维度: 1.成立时间 2.专业性 3.市场普及率 成立时间 成立久的不一定好,比如北大某鸟 成立不足3年的,不要选…