当前位置: 首页 > news >正文

通化市网站建设_网站建设公司_改版升级_seo优化

三屏合一网站开发,网站建设预算申请表,搜索引擎大全,wordpress文章类插件正题 题目链接:https://www.luogu.com.cn/problem/P6775 题目大意 nnn种原材料#xff0c;第iii个有did_idi​个#xff0c;mmm道菜品都需要kkk个原料而且每道菜最多只能用两种材料。 要求构造方案使得满足条件。 1≤n≤500,n−2≤m≤5000,1≤k≤5000,(∑i1ndi)mk1\leq n\l…正题 题目链接:https://www.luogu.com.cn/problem/P6775 题目大意 nnn种原材料第iii个有did_idi​个mmm道菜品都需要kkk个原料而且每道菜最多只能用两种材料。 要求构造方案使得满足条件。 1≤n≤500,n−2≤m≤5000,1≤k≤5000,(∑i1ndi)m×k1\leq n\leq 500,n-2\leq m\leq 5000,1\leq k\leq 5000,(\sum_{i1}^nd_i)m\times k1≤n≤500,n−2≤m≤5000,1≤k≤5000,(∑i1n​di​)m×k 解题思路 额去年线上赛的时候一点想法都没有是时候轮到我来一雪前耻历虽然这题还是很难 首先我们注意到一个特殊的条件n−2≤mn-2\leq mn−2≤m看上去没什么想法但是看一下数据范围有n−1mn-1mn−1m和n−1≤mn-1\leq mn−1≤m两个部分分。 先考虑n−1mn-1mn−1m的就是原料比菜品多一个那么我们一定有dminkd_{min}kdmin​k而且dmindmaxk(n≠2)d_{min}d_{max}k(n\neq 2)dmin​dmax​k(n​2)。 嗯所以我们每次拿最少的一个原料和最多的一个原料做一个菜那么依旧满足n−1mn-1mn−1m的条件。 然后考虑n≤mn\leq mn≤m的情况不难发现肯定有dmax≥kd_{max}\geq kdmax​≥k所以我们直接拿最多的来做一道菜那么要不n−1,m−1n-1,m-1n−1,m−1要么m−1m-1m−1变成n−1mn-1mn−1m的情况。 之后是n−2mn-2mn−2m的做法这个是本题的核心难点。 在洛谷题解上看到过一个有趣的证明我们可以把原料看成一个点菜品所用的两个原料看成一条边那么因为mn−2mn-2mn−2所以这张图一定是不连通的那么至少会被分成两棵树。 发现对于树就是mn−1mn-1mn−1的情况所以其实是相当于我们要把mn−2mn-2mn−2的情况分成两个mn−1mn-1mn−1的情况。 而且因为mn−1mn-1mn−1一定有解所以我们只需要考虑怎么分就好了。 相当于我们要找出一个原料集合SSS使得 ∑i∈Sdi(∣S∣−1)k⇒∑i∈S(di−k)−k\sum_{i\in S}d_i(|S|-1)k\Rightarrow \sum_{i\in S}(d_i-k)-ki∈S∑​di​(∣S∣−1)k⇒i∈S∑​(di​−k)−k 然后直接dpdpdp的复杂度是O(Tn2k)O(Tn^2k)O(Tn2k)的加个bitsetbitsetbitset优化就是O(Tn2kw)O(T\frac{n^2k}{w})O(Twn2k​)可以通过本题 code #includecstdio #includecstring #includealgorithm #includevector #includebitset using namespace std; const int N510,S5e610,W2500000; struct node{int w,id; }d[N]; struct cnode{int a,A,b,B; }v[N*10]; int T,n,m,k,tot; bool vis[N]; bitsetSf[N]; vectornode u; bool cmp(node x,node y) {return x.wy.w;} void Add(int a,int A,int b0,int B0) {v[tot](cnode){a,A,b,B};return;} void solve(int m,vectornode d){int nd.size();tot0;while(mmn){sort(d.begin(),d.end(),cmp);Add(d[n-1].id,k);d[n-1].w-k;m--;if(!d[n-1].w)d.pop_back(),n--;}if(mn-1){while(m){sort(d.begin(),d.end(),cmp);swap(d[0],d[n-1]);Add(d[n-1].id,d[n-1].w,d[0].id,k-d[n-1].w);d[0].w-k-d[n-1].w;d.pop_back();n--;m--;if(!d[0].w)swap(d[0],d[n-1]),d.pop_back(),n--;}}for(int i1;itot;i){if(v[i].b)printf(%d %d %d %d\n,v[i].a,v[i].A,v[i].b,v[i].B);else printf(%d %d\n,v[i].a,v[i].A);}u.clear();return; } int main() {scanf(%d,T);f[0][W]1;while(T--){scanf(%d%d%d,n,m,k);for(int i1;in;i)scanf(%d,d[i].w),d[i].idi;if(mn-2){for(int i1;in;i){int tmpd[i].w-k;if(tmp0){f[i]f[i-1];f[i]|(f[i-1]tmp);}else{f[i]f[i-1];f[i]|(f[i-1](-tmp));}}if(!f[n][W-k])puts(-1);else{memset(vis,0,sizeof(vis));for(int in,zW-k;i1;i--){int tmpd[i].w-k;if(f[i-1][z-tmp])u.push_back(d[i]),vis[i]1,z-tmp;}solve(u.size()-1,u);for(int i1;in;i)if(!vis[i])u.push_back(d[i]);solve(u.size()-1,u);}}else{for(int i1;in;i)u.push_back(d[i]);solve(m,u);}}return 0; }
http://www.lebaoying.cn/news/35971.html

相关文章:

  • 营口沿海开发建设有限公司网站云南人参果
  • 开个捕鱼网站怎么做wordpress要求配置
  • 网站建设功能规划本网站正在建设图片
  • 辽宁鹤城建设集团网站做软件页面设计的软件
  • 长沙哪里可以做网站上海网址大全
  • 建设企业网站需要什么SEO如何建设网站
  • 深圳网站建设价格品牌营销方案模板
  • 网站推广的要点建设优化一个网站步骤
  • 四川住房和城乡建设厅网站打不开中国未来楼市走势分析
  • 东莞市网站seo小米路由器mini做网站
  • wordpress提交表单插件电脑优化软件哪个好用
  • 织梦可以做导航网站用钢铁侠做网站
  • 网络营销网站建设论文芜湖县建设局网站
  • 通江县住房和城乡建设局网站南昌网站建设风格
  • 淘宝客网站怎么做的人少了最好的seo外包
  • 博客 选择 WordPressseo网络优化教程
  • 惠州网站建设惠州嘉兴网站建设嘉兴
  • 漯河网站建设 千弘网络唯品会一家做特卖的网站 分析
  • 网站 筛选功能wordpress jiathis
  • 个人网站快速备案企业家居网站建设
  • 上海奉贤网站建设 列表网我想建立个网站数据怎么办
  • 镇江网站建设远航科技书店网站规划与建设
  • cad dwt模板做网站模版重庆永川网站建设价格
  • 网站建设公司的业务规划温猛设计工作室
  • 厦门景观绿环建设行业协会网站洛阳做网站公司电话
  • 杭州的网站建设公司有哪些七台河新闻哪里看回放
  • 东莞网站建设方案维护重新建设网站的申请报告
  • 青岛微网站开发asp.net网站开发使用到的技术
  • 成都旅游网站建设地址网站pc开发上海
  • 西安公司网站制作价格心悦免做卡领取网站