cf #379div2
A.
题意:输入一串字符只含A和D,判断A和D的多少比较,
分析:直接计数
B.
题意:给出数字2,3,5,6的个数,用这些数组成256和32,要求最后组成的数的和最大
分析:贪心,优先组成256,然后组成32; n256=min(k2,k5,k6),n32=min(k3,k2-n256);
C.
题意:要求你制作出n瓶药水,初始每瓶药水要花费x的时间,另有两种魔法操作可以缩短制作时间,type1 :将制作每一瓶药水的时间都缩短至ai的时间,但是要花费bi的魔法点数;type2:瞬间制作出ci瓶药水(相当这ci瓶药水没花时间),但是要花费di的魔法点数。初始你有s的魔法点数,type1有m种魔法,type2有k种魔法。要求出制作出n瓶药水的最短时间
(1 ≤ n ≤ 2·1e9, 1 ≤ m, k ≤ 2·1e5)
分析:1.首先,我们发现如果我们选择第一种type的第i个魔法和第二种type的第j个魔法,则我们准备所有的药水要花费 ai*(n-cj)的时间,我们要使这个值最小;
2.第二种类型魔法可以制作出的药水数及花费的魔法点数是非递减序列,考虑用二分;
3.直接循环一遍type1的魔法(a[i]数组),然后用剩下的魔法点数s1找到能使用的type2的魔法的最大值(二分)
4.注意边界,可能初始的魔法点数既不可能选择type1 也不能选择type2 ,此时答案直接是初始的x*n;
代码:
![](/assets/blank.gif)
![](/assets/blank.gif)
1 #include<iostream> 2 #include<algorithm> 3 #include<cstdio> 4 using namespace std; 5 6 #define maxn 200010 7 #define ll long long 8 #define fi first 9 #define se second 10 ll a[maxn],b[maxn],c[maxn],d[maxn]; 11 ll n,m,k,x,s; 12 13 ll get(ll mon) 14 { 15 ll l=0,r=k; 16 while(l<r) 17 { 18 ll mid=(l+r+1)/2; 19 if(d[mid]>mon) 20 r=mid-1; 21 else 22 l=mid; 23 } 24 return c[l]; 25 } 26 int main() 27 { 28 29 cin>>n>>m>>k; 30 cin>>x>>s; 31 ll ans=n*x; 32 a[0]=x; //type1没有选中的spell时注意初始化 33 for(ll i=1;i<=m;i++) cin>>a[i]; 34 for(ll i=1;i<=m;i++) cin>>b[i]; 35 for(ll i=1;i<=k;i++) cin>>c[i]; 36 for(ll i=1;i<=k;i++) cin>>d[i]; 37 for(int i=0;i<=m;i++) //i要从0开始,因为tyoe1可能也没有可以使用的pell 38 { 39 ll s1=s-b[i]; 40 //cout<<s1<<" "<<get(s1)<<" "<<(n-get(s1))*a[i]<<endl; 41 if(s1<0)continue; 42 ans=min(ans,(n-get(s1))*a[i]); 43 } 44 cout<<ans<<endl; 45 return 0; 46 }
View Code
D.
题意:-1e9~1e9的棋盘,给出黑king的位置,和n个白棋的位置白棋只能是象,车,王后;问白棋是否能在一步之内攻击到黑king。
Bishop象:只能走对角线任意格但不能跳过障碍;
Rook车:只能走水平和垂直但不能跳过障碍;
Queen王后:可以走对角线和水平和垂直,也不能跳过障碍;
分析:以黑king为分析对象,一步之内要攻击到黑king只有上下左右及上左上右下左下右八个方向上离黑king最近的白棋(因为白棋都不能跳过挡道棋子),即可在输入时更新每个方向上离黑king最近的白棋,最后根据每种白棋能走的方向判断能否攻击到黑king。
代码://自己容易手挫版
![](/assets/blank.gif)
![](/assets/blank.gif)
#include<iostream> #include<cstdio> #include<cmath> #include<string> #include<cstring> using namespace std;#define ll long long #define fi first #define se second pair<ll,ll>p[10]; int flag[10]; char cr[10]; ll xx; ll yy;int judge(char c,ll x,ll y) {if(x==xx){if(y<yy){if(!flag[1]){flag[1]=1;p[1].se=y;p[1].fi=xx;cr[1]=c;}p[1].se=max(p[1].se,y);if(p[1].se==y) cr[1]=c;}else{if(!flag[5]){flag[5]=1;p[5].se=y;p[5].fi=xx;cr[5]=c;}p[5].se=min(p[5].se,y);if(p[5].se==y) cr[5]=c;}}else if(y==yy){if(x<xx){if(!flag[3]){flag[3]=1;p[3].fi=x;p[3].se=yy;cr[3]=c;}p[3].fi=max(p[3].fi,x);if(p[3].fi==x) cr[3]=c;}else{if(!flag[7]){flag[7]=1;p[7].fi=x;p[7].se=yy;cr[7]=c;}p[7].fi=min(p[7].fi,x);if(p[7].fi==x) cr[7]=c;}}else if(x+y==xx+yy){if(x>xx&&y<yy){if(!flag[8]){flag[8]=1;p[8].fi=x;p[8].se=y;cr[8]=c;}p[8].fi=min(p[8].fi,x);p[8].se=max(p[8].se,y);if(p[8].fi==x) cr[8]=c;}else{if(!flag[4]){flag[4]=1;p[4].fi=x;p[4].se=y;cr[4]=c;}p[4].fi=max(p[4].fi,x);p[4].se=min(p[4].se,y);if(p[4].fi==x) cr[4]=c;}}else if(x-y==xx-yy){if(x<xx&&y<yy){if(!flag[2]){flag[2]=1;p[2].fi=x;p[2].se=y;cr[2]=c;}p[2].fi=max(p[2].fi,x);p[2].se=max(p[2].se,y);if(p[2].fi==x)cr[2]=c;}else{if(!flag[6]){flag[6]=1;p[6].fi=x;p[6].se=y;cr[6]=c;}p[6].fi=min(p[6].fi,x);p[6].se=min(p[6].se,y);if(p[6].fi==x) cr[6]=c;}} }int main() {int n;cin>>n;cin>>xx>>yy;ll x,y;char c;while(n--){cin>>c>>x>>y;judge(c,x,y);}bool is=false;for(int i=1;i<=8;i++){//cout<<p[i].fi<<" "<<p[i].se<<" "<<cr[i]<<endl;if(i%2&&(cr[i]=='R'||cr[i]=='Q'))is=true;else if(i%2==0&&(cr[i]=='B'||cr[i]=='Q'))is=true;}if(is)cout<<"YES\n";elsecout<<"NO\n";return 0; }
View Code
//出题author优美版
![](/assets/blank.gif)
![](/assets/blank.gif)
#include <cstdio> #include <algorithm>using namespace std;inline char in_char() {char c = '\0';while (c <= ' ')c = getchar();return c; }inline int in_int() {int n;scanf("%d", &n);return n; }struct figurine {char kind;int x, y; };int n; int x0, y0; figurine nearest[8];inline int dist(int x1, int y1, int x2, int y2) {return max(abs(x1 - x2), abs(y1 - y2)); }inline void upd_nearest(figurine& was, const figurine& cur) {if (was.kind == '?' ||dist(x0, y0, cur.x, cur.y) < dist(x0, y0, was.x, was.y))was = cur; }inline int get_direction(const figurine& cur) {// verticalif (cur.x == x0 && cur.y < y0) return 0;if (cur.x == x0 && cur.y > y0) return 1;// horizontalif (cur.y == y0 && cur.x < x0) return 2;if (cur.y == y0 && cur.x > x0) return 3;// diagonal 1if ((cur.y - y0) == (cur.x - x0) && cur.x < x0) return 4;if ((cur.y - y0) == (cur.x - x0) && cur.x > x0) return 5;// diagonal 2if ((cur.y - y0) == (x0 - cur.x) && cur.y < y0) return 6;if ((cur.y - y0) == (x0 - cur.x) && cur.y > y0) return 7;// the piece doesn't lie on any of the eight directionsreturn -1; }int main() {n = in_int();x0 = in_int(); y0 = in_int();for (int i = 0; i < 8; i++)nearest[i].kind = '?';// read and update nearestfor (int i = 0; i < n; i++){figurine cur;cur.kind = in_char(); cur.x = in_int(); cur.y = in_int();int dir = get_direction(cur);if (dir >= 0)upd_nearest(nearest[dir], cur);}bool ans = false;// check verticals and horizontalsfor (int i = 0; i < 4; i++)if (nearest[i].kind == 'R' || nearest[i].kind == 'Q')ans = true;// check diagonalsfor (int i = 4; i < 8; i++)if (nearest[i].kind == 'B' || nearest[i].kind == 'Q')ans = true;// outputputs(ans ? "YES" : "NO");return 0; }
View Code
E.
待更新
转载于:https://www.cnblogs.com/tristatl/p/6081892.html
cf #379div2相关推荐
- 『参考』.net CF组件编程(4)——为自定义组件添加工具箱图标!
前言: 在前三篇的文章中,和大家一起创建了一个用于TCP连接检测的小组件,如果你记不得了,可以通过以下链接去回顾一下: 『参考』.net CF组件编程(1)--基础之后 『参考』.net CF组件编程 ...
- OC对象 vs CF对象
2019独角兽企业重金招聘Python工程师标准>>> OC对象 vs CF对象 在ARC场景下,对象所有权没有转换 使用__bridge关键字即可实现CF对象和OC对象之间的自由转 ...
- CF 990A. Commentary Boxes【数学/模拟】
[链接]:CF [题意]:对于一个数n,每次加一的代价是a,每次减一的代价是b,求被m整除时的最小代价. [分析]:分情况讨论,自己多举几个栗子. [代码]: #include<cstdio&g ...
- 推荐算法——基于协同过滤CF
https://www.toutiao.com/a6643326861214482957/ 2019-01-06 18:21:09 前边我们已经介绍了推荐算法里的基于内容的推荐算法CB,今天我们来介绍 ...
- 索引贴——移动开发(.Net CF 停止更新)
这是关于本人博客的技术索引贴,希望能方便的让您阅读到相关技术文章--不断更新中.一整理才发现,好多啊,哈哈- 一..Net CF技巧:搜集.转载一些和CF开发相关的辅助文章,比较适合初学者.开发入门者 ...
- 解答:CF截图保存在哪
为什么80%的码农都做不了架构师?>>> 大家玩CF(穿越火线)的时候遇到精彩的画面总希望截图保存下来,然而有些游戏玩家截图后却不知道CF截图保存在哪!这不得不说是个悲剧,但是 ...
- CF里面的资源载入问题
前一段时间已经发现CF在载入资源的时候会怪怪的,但是这一段时间都不曾记起要对这个问题研究一下.最近又发现这个问题了,实在是恼火.俗话说择日不如撞日(粤语),唉,就今天啦.这个问题是在VS2k5里面调试 ...
- [CF.Skills]播放嵌入资源的声音文件
[CF.Skills]播放嵌入资源的声音文件 摘要:本文阐述了在Windows Mobile中如何播放潜入资源的声音文件KeywordsPlaySound, Windows Mobile, Embed ...
- CF#190DIV.1
1 /* 2 CF#190DIV.1-C 3 题意:给你n个结点的树,给这些结点标记字母AB..Z,对于标记相同的结点路径上 4 的结点的标记必须有一个是大于该标记的:问是否可以标记(A是最大标记) ...
最新文章
- C语言交换两个数的值与形参与实参理解
- 让Keras更酷一些:中间变量、权重滑动和安全生成器
- 深入理解条件过滤Conditional
- mysql主主备份及集群
- php用正则去掉一些固定字符,用PHP正则表达式清除字符串的空白
- Java基础知识学习04-自定义类、ArrayList集合
- MongoDB教程-使用Node.js从头开始CRUD应用
- 预告|CVPR 2021 论文分享会日程公布!与计算机视觉领域学者一起收获“立体”参会体验...
- Spring基础面试题-同步更新
- 用指针比较三个数大小_《测量力的大小》教案
- JDK8时间与java.util.Date,java.sql.Date,Timestamp等的相互转换(时间转换)
- 程序员面试金典——3.4汉诺塔
- 一个文科毕业生在德国 IT 行业的漫漫求职路
- 社区角色(Kubernetes社区Maintainer是什么角色?)
- windows杀死进程
- 神经网络压缩库 Distiller
- Kubadem方式安装Kubernetes(1.10.0)集群
- 舒亦梵:这十个小技巧,教你炒黄金长久获利
- 决策树及集成模型 python实现
- AdMob Android谷歌广告接入(精简版)
热门文章
- Java笔记(5)-String、StringBuffer、StringTokenizer、Date、Calendar
- 7.笔记 MySQL学习——向表中添加行
- AT24C02 E2PROM芯片详解
- 结构体中的浅拷贝与深拷贝
- 如何科學試用Mac photoshop cc 2018(非注册机)
- FS162液晶手写板擦写专用芯片
- 《低功耗蓝牙开发权威指南》——2.1节纽扣电池
- Vue丝滑滚动组件封装
- Windows Embedded CE 6.0 下载地址
- Thinkpad x1 carbon 2022,2021 各个版本CPU性能对比