首页 > 其他分享 >acwing 318. 划分大理石

acwing 318. 划分大理石

时间:2023-02-20 17:11:23浏览次数:43  
标签:318 cout int 大理石 -- flag acwing

 

 

多重背包及优化

#include <bits/stdc++.h>
using namespace std ;
 const int N=5e5+10;
 int c[N],S,n,f[N];
 
 int solve(){
 	int i,j;
 	S=0;
 	memset(f,0,sizeof f);
 	int flag=0;
 	for(i=1;i<=6;i++){
 		cin>>c[i]; S+=i*c[i]; if(c[i]) flag=1;
 	}
 	if(flag==0) return 0;
 	
 	if(S%2){
 		cout<<"Can't\n";return 1;
 	}
 	f[0]=1;
 	
 	for(i=1;i<=6;i++){
 		int t=c[i];
 		for(int k=1;k<=t;k<<=1){
 			for(j=S;j>=k*i;j--){
 				f[j]|=f[j-k*i];
 			}
 			t-=k;
 		}
 		if(t)
 		 for(j=S;j>=t*i;j--)
 		  f[j]|=f[j-t*i];
 	}
 	
 	 if(f[S/2]) cout<<"Can"; else cout<<"Can't";cout<<endl;
 	 
 	 return 1;
 }

 signed main(){
 	while(solve());
 }
 
 
 

 

标签:318,cout,int,大理石,--,flag,acwing
From: https://www.cnblogs.com/towboa/p/17138148.html

相关文章

  • acwing 316. 减操作
      类似背包f[i][sum]|=f[i-1][sum-a[i]],这里设置为1或-1 #include<bits/stdc++.h>usingnamespacestd;constintN=2e4+10;constintD=1e4;intn,m......
  • AcWing 3956. 截断数组 [前缀和]
    AcWing3956.截断数组[前缀和]原题链接讲解视频思路题意是将一串数字从中间切两刀分成三段。每一段的和都相等。要求这三段每一段的和都相等,那么总和肯定是3的倍数,......
  • 「AcWing学习记录」Dijkstra
    AcWing849.Dijkstra求最短路I原题链接朴素Dijkstra1.dis[1]=0,dis[i]=\(+\infty\)2.for(inti=0;i<n;i++)s:当前已确定最短距离的点t\(\leftarrow\)......
  • AcWing 372. 棋盘覆盖
    给n*n的方格图铺满1*2的长条,且某些位置不能铺,问最多能放多少个长条 #include<iostream>#include<queue>#include<vector>#include<cstring>usingnamespaces......
  • acwing 数组元素的目标和
    原题链接题解代码双指针#include"iostream"usingnamespacestd;constintN=100010;inta[N],b[N];intmain(){intn,m,x;cin>>n>>m>>x;for(i......
  • acwing 判断子序列
    原题链接题解分析使用双指针,o为数组1的指针,p为数组2的指针因为数组2要比数组1大,所以使p每次循环自增,当有相同值,使o自增,最后检查o是否已经遍历完毕即可代码#includ......
  • ACwing 区间最大公约数题解 线段树(附证明)
    算进区间最大公因数单点线段树 https://www.acwing.com/problem/content/247/题目:给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:Clrd,表......
  • AcWing95. 费解的开关(/思维题)
    原题原题解题目约束题解#include<iostream>#include<cstring>usingnamespacestd;constintN=11;charg[N][N];intdx[]={0,-1,0,1,0},dy[]={0......
  • AcWing788.逆序对的数量(Java)
    题目来源:https://www.acwing.com/problem/content/790/题目描述给定一个长度为n的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第i个和第j......
  • AcWing 每日一题 未初始化警告
    #include<bits/stdc++.h>usingnamespacestd;signedmain(){intn,k,cnt=0;cin>>n>>k;set<int>se;se.insert(0);while(k--){in......