Educational Codeforces Round 89 (Rated for Div. 2) A Shovels and Swords B、Shuffle
题目链接:A、Shovels and Swords
题意:
你需要一个木棍和两个钻石可以造出来一把剑
你需要两个木棍和一个钻石可以造出来一把铁锹
你现在有a个木棍,b个钻石,问你最多可以造出来几件东西
题解:
分两种情况,第一种:
如果max(a,b)>=2*min(a,b),那么最多可以造出来min(a,b)件物品
第二种:
排除第一种情况后,假设我们最多造出来了x把铁锹,y把剑
2x+y<=a
x+2y<=b
两个式子相加得到:
3(x+y)<=a+b,即x+y<=(a+b)/3
或者你可以这样解释,我们刚开始先假设a>=b,因为最佳分配肯定是让剩余数量多的材料减去2,那么也就是a-=2,b-=1。一旦a<b,那就b-=2,a-=1。你会发现无论怎样a+b的数量都要大于3
代码:

 
1 #include<stdio.h>
2 #include<algorithm>
3 #include<iostream>
4 #include<string>
5 #include<queue>
6 #include<deque>
7 #include<string.h>
8 #include<map>
9 #include <iostream>
10 #include <math.h>
11 using namespace std;
12 typedef long long ll;
13 const int maxn=2e5+10;
14 int main()
15 {
16 int t;
17 scanf("%d",&t);
18 while(t--)
19 {
20 int a,b,sum=0;
21 scanf("%d%d",&a,&b);
22 if(a<b) swap(a,b);
23 if(a>=2*b) printf("%d\n",b);
24 else
25 {
26 printf("%d\n",(a+b)/3);
27 }
28 }
29 return 0;
30 }
题目链接:B、Shuffle
题意:
给你一个n个长度的数组(下标从1开始),初始这个数组每一个下标对应的值都是0,只有下标为x那个位置对应的元素值为1。然后题目中给出来m个区间,你可以在区间[l,r]中挑选出来任意两个位置l<=a<=b<=r
然后你可以让下标为a和下标为b所对应的元素值交换。问你最后有多少位置可以变成1
题解:
那下面样例做例子:
3 3 2
2 3
1 2
那么v[1]=v[2]=0,v[3]=1;
在区间[2,3]中,我们可以让v[2],v[3]交换,这样的话v[2]就有可能为1,第三个区间[1,2],因为v[2]有可能为1,那么v[1]和v[2]交换之后,那么v[1]也有可能为1
所以答案就是3
模拟题,具体实现见代码:

 
1 #include<stdio.h>
2 #include<algorithm>
3 #include<iostream>
4 #include<string>
5 #include<queue>
6 #include<deque>
7 #include<string.h>
8 #include<map>
9 #include <iostream>
10 #include <math.h>
11 using namespace std;
12 typedef long long ll;
13 const int maxn=2e5+10;
14 int main()
15 {
16 int t;
17 scanf("%d",&t);
18 while(t--)
19 {
20 int n,x,m;
21 scanf("%d%d%d",&n,&x,&m);
22 int start=x,last=x;
23 while(m--)
24 {
25 int a,b;
26 scanf("%d%d",&a,&b);
27 if(a<=start && b>=last)
28 {
29 start=a;
30 last=b;
31 }
32 else if(start<=a && last>=a)
33 {
34 last=max(last,b);
35 }
36 else if(start<=b && last>=b)
37 {
38 start=min(start,a);
39 }
40 }
41 printf("%d\n",last-start+1);
42 }
43 return 0;
44 }
Educational Codeforces Round 89 (Rated for Div. 2) A Shovels and Swords B、Shuffle的更多相关文章
- Educational Codeforces Round 89 (Rated for Div. 2) A. Shovels and Swords(贪心/数学)
		题目链接:https://codeforces.com/contest/1366/problem/A 题意 有两个数 $a$ 和 $b$,每次可以选择从一个数中取 $2$,另一个数中取 $1$,问最多 ... 
- Educational Codeforces Round 89 (Rated for Div. 2)   A. Shovels and Swords  (贪心)
		题意:你有\(a\)个树枝和\(b\)个钻石,\(2\)个树枝和\(1\)个钻石能造一个铁铲,\(1\)个树枝和\(2\)个钻石能造一把剑,问最多能造多少铲子和剑. 题解:如果\(a\le b\),若 ... 
- Educational Codeforces Round 89 (Rated for Div. 2) C. Palindromic Paths(贪心)
		题目链接:https://codeforces.com/contest/1366/problem/C 题意 有一个 $n \times m$ 的 $01$迷宫,要使从 $(1,1)$ 到 $(n,m) ... 
- Educational Codeforces Round 89 (Rated for Div. 2) B. Shuffle(数学/双指针)
		题目链接:https://codeforces.com/contest/1366/problem/B 题意 大小为 $n$ 的数组 $a$,除了 $a_x = 1$,其余 $a_i = 0$,依次给出 ... 
- Educational Codeforces Round 89 (Rated for Div. 2)    C   Palindromic Paths
		题目链接:Palindromic Paths 题意: 给你一个n行m列的矩阵,这个矩阵被0或者1所填充,你需要从点(1,1)走到点(n,m).这个时候会有很多路径,每一条路径对应一个01串,你可以改变 ... 
- Educational Codeforces Round 89 (Rated for Div. 2)D. Two Divisors   线性筛质因子
		题目链接:D:Two Divisors 题意: 给你n个数,对于每一个数vi,你需要找出来它的两个因子d1,d2.这两个因子要保证gcd(d1+d2,vi)==1.输出的时候输出两行,第一行输出每一个 ... 
- Educational Codeforces Round 89 (Rated for Div. 2)  D. Two Divisors  (数学)
		题意:有\(n\)组数,对于每组数,问是否能找到两个因子\(d_{1},d{2}\),使得\(gcd(d_{1}+d_{2},a_{i}=1)\),如果有,输出它们,否则输出\(-1\). 题解:对于 ... 
- Educational Codeforces Round 89 (Rated for Div. 2)   C. Palindromic Paths  (思维)
		题意:有一个\(n\)x\(m\)的矩阵,从\((1,1)\)出发走到\((n,m)\),问最少修改多少个数,使得所有路径上的数对应相等(e.g:\((1,2)\)和\((n-1,m)\)或\((2, ... 
- Educational Codeforces Round 89 (Rated for Div. 2)   B. Shuffle  (数学,区间)
		题意:有长为\(n\)的排列,其中\(x\)位置上的数为\(1\),其余位置全为\(0\),询问\(m\)次,每次询问一个区间,在这个区间内可以交换任意两个位置上的数,问\(1\)最后出现在不同位置的 ... 
随机推荐
- 【Flutter】功能型组件之颜色和主题
			前言 Color类中颜色以一个int值保存,显示器颜色是由红.绿.蓝三基色组成,每种颜色占8比特,存储结构如下: Bit(位) 颜色 0-7 蓝色 8-15 绿色 16-23 红色 24-31 Alp ... 
- LeetCode 二分查找模板 I
			模板 #1: int binarySearch(vector<int>& nums, int target){ if(nums.size() == 0) return -1; in ... 
- Nginx(六):配置解析之location解析
			nginx成为非常流行的代理服务软件,最根本的原因也许是在于其强悍性能.但还有一些必要的条件,比如功能的完整,配置的易用,能够解决各种各样的实际需求问题,这些是一个好的软件的必备特性. 那么,今天我们 ... 
- 【Linux】nginx详细说明
			Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目 ... 
- vxfs(Veritas File System)扩充目录大小
			1.新增加一个磁盘并初始化 # vxdisk list # vxdisksetup -i 3pardata0_22 2.将新增加的磁盘合并到磁盘组中 # vxdg -g testdg01 adddis ... 
- java 文件上传的那些事
			文件上传 逻辑 @Value("${sava_path}") private String sava_path; @Override public String saveFile( ... 
- Typora+PicGo+Gitee打造图床
			前言  自己一直使用的是Typora来写博客,但比较麻烦的是图片粘贴上去后都是存储到了本地,写好了之后放到博客园等地,图片不能直接访问,但如今Typora已经支持图片上传,所以搞了一波图片上传到Gi ... 
- 炸裂!MySQL 82 张图带你飞
			之前两篇文章带你了解了 MySQL 的基础语法和 MySQL 的进阶内容,那么这篇文章我们来了解一下 MySQL 中的高级内容. 其他文章: 138 张图带你 MySQL 入门 47 张图带你 MyS ... 
- Kafka分区分配策略(Partition Assignment Strategy)
			众所周知,Apache Kafka是基于生产者和消费者模型作为开源的分布式发布订阅消息系统(当然,目前Kafka定位于an open-source distributed event streamin ... 
- GC 卡顿 优化 三色标记优势
			小结: 1. 三色标记的一个明显好处是能够让用户程序和 mark 并发的进行 Go GC 卡顿由秒级降到毫秒级以下:到底做了哪些优化? https://mp.weixin.qq.com/s/2BMGG ... 
