Educational Codeforces Round 138 (Rated for Div. 2)
创始人
2024-01-21 17:30:20

A:思维

题意:给一定的N*N的板子,里面放有一些乌鸦,这些乌鸦会攻击自己的所在行与所在列,问给定一个数量的乌鸦,问是否能够移动某只乌鸦,使得形成和平局面?

方法:我们发现,N*N的板子,因为乌鸦会攻击所在行与所在列,所以要形成和平局面,则最多只能放N只乌鸦,如果多余了N只,那么肯定不会形成和平局面。所以,这题只跟板子的大小和乌鸦的数量有关。

代码: 

#include
#define int long long
using namespace std;
const int N=1e6+10;inline void solve(){int n,m;cin>>n>>m;for(int i=1;i<=m;i++){int x,y;cin>>x>>y;}if(m>T;while(T--) solve();
}

B:贪心

 题意:给定N个具有一定顺序排列的怪物,这个怪物本身有血量,还有一个技能,就是在这个怪物死后,发动这个技能会使他左右两边的怪物加上一定的血量。定义怪物的血量为HP的话,那么杀死这个怪物所用的时间就需要HP秒,这一个怪物死后,就消失了。他左右的邻居就相邻了。

 问如何一个一个的杀完所有的怪物使得用的时间最短?

方法:因为杀死一个怪物,它的左右邻居都会加上一定血量,那么要想所有怪物的血量加的最少,则应该从第一个或者最后一个怪物开始杀起,因为他们的邻居只有1个,这样尽可能少的给怪物加血量。我们知道,杀完所有怪物(若所有怪物的加血技能都加0滴血),那么所需要的时间,就是所有怪物的血量和:SUM。若所有怪物的加血技能都加不为0的血量时,则所需要的最少时间一定是SUM+(N-1)个怪物的加血量。因为最后一个怪物死后,它的加血技能没有用,所以我们最优的方案一定是将加血量最多的怪物放在最后一个消灭。

代码:

#include
#define int long long
using namespace std;
const int N=1e6+10;inline void solve(){int res=0,maxx=0;int n;cin>>n;for(int i=1;i<=n;i++){int x;cin>>x;res+=x;}for(int i=1;i<=n;i++){int x;cin>>x;res+=x;maxx=max(maxx,x);}cout<>T;while(T--) solve();
}

C:暴力+贪心 or(二分+贪心)

题意:有n个数,Alice和Bob玩游戏。游戏进行k轮,每一轮Alice必须消除一个小于等于 k−i+1 的数,在消除之后,如果数组还有元素的话Bob需要对一个数增加 k−i+1 ,求Alice在保证自己在k轮内都能消除数的前提下,最多进行的轮次。

分析:Alice每消除一个数,Bob就会在剩余数组中选择一个数加k-i+1。随着轮次的增加,Alice消除的数是越来越小的。这里考虑一下贪心策略。

设想如果Bob选择的是数组中最大的数,那么Alice就肯定不会消除完所有的数,那么要想使得轮次更多,Bob选择数组中最小的数进行操作即可。

这里解释一下Bob的选择操作:为什么每次选最小数会使轮次增加?

选择最大的数进行操作是肯定不行的,那么选择次大数呢?这里不妨反演一遍,如果Bob每次都操作最小的数,那么最小数每次都在增大,则就一定会使轮次增大。

代码:

#include
#define int long long
using namespace std;
int n,a[101];inline bool pd(int k){int l=1,r=n;for(int i=1;i<=k;i++){while(a[r]>k-i+1) r--;
//如果一开始就是小于最大值的话,我们就减减,为的是让这个k不满足pdif(l>r) return false;//说明Bob的操作次数比Alice多,则就不可能满足pdl++,r--;//Alice从右往左操作,Bob从左往右操作}return true;
}inline void solve(){cin>>n;for(int i=1;i<=n;i++) cin>>a[i];sort(a+1,a+1+n);int ans=0;for(int i=1;i<=n;i++){//为什么要在1-n范围找呢?因为k-i+1的最小值只能为1而不能为0if(pd(i)) ans=i;}cout<>T;while(T--) solve();
}

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
ps局部放大 放大某个部位的图... 软件类学习建议:边看边练习,可以先收藏后学习。一、使用Ctrl快捷键放大:Ctrl + +缩小:Ct...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
ps局部放大 放大某个部位的图... 软件类学习建议:边看边练习,可以先收藏后学习。一、使用Ctrl快捷键放大:Ctrl + +缩小:Ct...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...