首页 > 其他分享 >1821D - Black Cells(暴力贪心枚举)

1821D - Black Cells(暴力贪心枚举)

时间:2023-06-01 21:45:39浏览次数:42  
标签:int res Cells remain Black cnt1 ans 1821D define

大意加思路:相当于有一个绳子,其中有n段可以上色,如果要给一段上色代价增加2,没向前走一步代价加一,可以看出代价最多可以去对掉长度为一的段落,因为最后要给x个点上色代价做少为x,而前面的段落给1个点上色代价最少为2,另外要考虑最后一段可能没有完全上色。

点击查看代码
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int,int> PLL;
#define IOS cin.tie(nullptr)->sync_with_stdio(false);
#define se second
#define mem(a,b) memset(a,b,sizeof a);
#define pri priority_queue<int,vector<int>,greater<int> >
#define low(a,b,c) lower_bound(a,a+b,c)-a;
#define upp(a,b,c) upper_bound(a,a+b,c)-a;
//const int N=1e6+7;
LL mod = (int)1e9 + 7;
const int INF=0x3f3f3f3f;

void solve()
{
	int n,k;
	cin>>n>>k;
	vector<int> l(n),r(n);
	for(int i=0;i<n;i++) cin>>l[i];
	for(int j=0;j<n;j++) cin>>r[j];
	int ans=INF;
	int sum=0;
	int cnt1=0;
	for(int i=0;i<n;i++){
		int len=r[i]-l[i]+1;//当前段落的长度 
		cnt1+=(len==1); //段长为1的段数 
		sum+=len;//目前所有段的总长 
		if(sum>=k){//总长的个数 
			int remain=sum-k; //可以减去的段数 
			int res=r[i]-remain+2*(i+1)-min(remain,cnt1); //当前的花费 
//			if(cnt1>=remain)
//			{
//				res=r[i]+2*(i+1-remain);
//			} 
//			else
//			{
//				res=r[i]+2*(i+1-cnt1);
//				res-=min(remain-cnt1,len);
//			}
			//每次先考虑减去 前面 长度为1的段落,再减去 最后一段多余的点数 
			ans=min(ans,res); 
		}
	}
	if(ans==INF) ans=-1;
	cout<<ans<<"\n";
}
signed main()
{
	IOS;
	int t=1;
	cin>>t;
	while(t--)
	{
		solve();
	}
	return 0;
}



#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int,int> PLL;
#define IOS cin.tie(nullptr)->sync_with_stdio(false);
#define se second
#define mem(a,b) memset(a,b,sizeof a);
#define pri priority_queue<int,vector<int>,greater<int> >
#define low(a,b,c) lower_bound(a,a+b,c)-a;
#define upp(a,b,c) upper_bound(a,a+b,c)-a;
//const int N=1e6+7;
LL mod = (int)1e9 + 7;
const int INF=0x3f3f3f3f;

void solve()
{
	int n,k;
	cin>>n>>k;
	vector<int> l(n),r(n);
	for(int i=0;i<n;i++) cin>>l[i];
	for(int j=0;j<n;j++) cin>>r[j];
	int ans=INF;
	int sum=0;
	int cnt1=0;
	for(int i=0;i<n;i++){
		int len=r[i]-l[i]+1;//当前段落的长度 
		cnt1+=(len==1); //段长为1的段数 
		sum+=len;//目前所有段的总长 
		if(sum>=k){//总长的个数 
			int remain=sum-k; //可以减去的段数 
			int res=r[i]-remain+2*(i+1)-min(remain,cnt1); //当前的花费 
//			if(cnt1>=remain)
//			{
//				res=r[i]+2*(i+1-remain);
//			} 
//			else
//			{
//				res=r[i]+2*(i+1-cnt1);
//				res-=min(remain-cnt1,len);
//			}
			//每次先考虑减去 前面 长度为1的段落,再减去 最后一段多余的点数 
			ans=min(ans,res); 
		}
	}
	if(ans==INF) ans=-1;
	cout<<ans<<"\n";
}
signed main()
{
	IOS;
	int t=1;
	cin>>t;
	while(t--)
	{
		solve();
	}
	return 0;
}




标签:int,res,Cells,remain,Black,cnt1,ans,1821D,define
From: https://www.cnblogs.com/xxj112/p/17450283.html

相关文章

  • python代码规范 自动优化工具Black
    自动优化工具Black在众多代码格式化工具中,Black算是比较新的一个,它***的特点是可配置项比较少,个人认为这对于新手来说是件好事,因为我们不必过多考虑如何设置Black,让Black自己做决定就好。1).安装与使用与pylint类似,直接pipinstallblack即可完成该模块的安装,不过black依赖于Pyth......
  • python 从bulkblacklist信誉查询网站提交查询
    importurllibimporturllib2#importwebbrowserimportreimportsocketdefis_domain_in_black_list(domain,ip):try_time=3url="http://www.bulkblacklist.com/"foriinrange(try_time):try:data=......
  • 2023年国际大学生程序设计竞赛(ACM-ICPC)新疆赛区 A.The Number Of Black Edges
    传送门大致题意:  爱丽丝得到一棵树,树上有n个节点,索引从1到n。树上的每条边可以是黑色或白色,所有的边最初都是白色的。有三种操作:1.将一条边的颜色改为黑色。2.将一条边的颜色改为白色。3.3.给定一个节点索引,计算从所有奇数节点到该节点的简单路径上的黑色边的数量之和。请......
  • iOS8 Self Sizing UITableView Cells iOS8Tableview Cells 自适应高度
    UITableViewUITableViewTheoldwayUITableView inheritsfrom UIScrollView).Iftherowswere allequalthiswas justasimpleoperation.Butiftheywere different,ithad toknow theheightsofalltherowsandsumthem.Itaskedusfortheheightofeve......
  • getPhysicalNumberOfCells读取excel表格数据,清除空行后代码仍然识别空行,(已解决)
     表格只有几十行数据,但是getPhysicalNumberOfCells读取时还有800多行,原因在于之前把表格数据拓展到了800行,清除数据时,表格的样式为更改,可以尝试使用格式刷复制空行格式刷到错误空行上但是我试了没有用,反而还多了几十行,然后尝试用代码判断空行,只有格式没有数据的空行全部删除,......
  • Blackbox_exporter的HTTP模块配置Bearer令牌
    如果要监控需要携带token才能访问的接口,您可以使用Blackbox_exporter的HTTP模块配置Bearer令牌。以下是一个示例:安装和配置Blackbox_exporter。创建一个名为auth.yml的配置文件,并将其放置在Blackbox_exporter配置文件夹中。在auth.yml文件中,添加类似以下的配置:modules:  http_2x......
  • how to configure blackbox.yml
    modules:http_2xx:prober:httphttp:follow_redirects:truehttp_post_2xx:prober:httphttp:method:POSTfollow_redirects:trueheaders:Content-Type:application/jsonbody_size_limit:10MB......
  • 软件架构风格-黑板架构风格(Blackboard architecture)
    参考链接:https://cs.uwaterloo.ca/~m2nagapp/courses/CS446/1181/Arch_Design_Activity/Blackboard.pdfhttp://users.encs.concordia.ca/~gregb/home/PDF/soen6461_blackboard_arch.pdf......
  • dell 7080m black mac bios setup
    BISO设置参考的以下帖子,改了一部分内容USBWakeSupport和WakeonLAN/WLAN保持了默认,因为我用不到网络唤醒功能。​https://github.com/3dudu/dell-optiplex-7080-hackintosh-opencore设置项   值SATAOperation   AHCIIntegratedNIC   EnabledSecureBootEnable ......
  • Kubernetes 之 Prometheus 监控 blackbox_exporter
      下载地址:https://prometheus.io/download/#blackbox_exporter#blackbox_exporter是Prometheus官方提供的一个exporter,可以监控HTTP、HTTPS,、DNS、TCP、ICMP等目标实例,#从而实现对被监控节点进行监控和数据采集。#HTTP/HTPPS:URL/API可用性检测#TCP:端口监......