SRM 554 DIV2

输出DirectX .x模型插件for3DMAX2011,12,13,2014包含X32 X64 3DS MAX 导出 directx .X 文件的插件。3DS Max2011,12,13,2014插件(32位与64位),把模型导出成*.x文件,解压后把对应文件拷贝到3DS max安装目录的stdplugs文件夹即可。 立即下载

第一题:

题意:有两种颜色的砖块,红色和蓝色。给你两种砖块的高度和数量,要求砖块只能放在与其不同颜色的砖块上面。问一共可以叠出多少种高度。

题解:暴力枚举。

代码:

#include <vector>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>

using namespace std;
set<int>  s;
void dfs(int rc,int rh,int bc,int bh,int high,int color)
{
     if(color==0&&rc>0)
     {
         s.insert(high+rh);
         dfs(rc-1,rh,bc,bh,high+rh,1);
     }
     else if(color==1&&bc>0)
     {
        s.insert(high+bh);
        dfs(rc,rh,bc-1,bh,high+bh,0);
     }
}
class TheBrickTowerEasyDivTwo {
public:
	int find(int redCount, int redHeight, int blueCount, int blueHeight) {
		s.clear();
		dfs(redCount,redHeight,blueCount,blueHeight,0,0);
		dfs(redCount,redHeight,blueCount,blueHeight,0,1);
		return s.size();
	}
};



第二题:

题意:有n个不同高度的砖块排成一列,要求两块砖块之间的距离不小于两者中最大的高度,让你重新给砖块排序,使得第1块到最后1块之间的距离最小。距离相同输出字典序最小的。

题解:求出全排列然后计算距离,保留最小值。ps:求全排列可以用STL

代码:

#include <vector>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>

using namespace std;
vector<int> num,temp;
int check()
{
    int summ=0;
    int len=num.size();
    for(int i=1;i<len;++i)
         summ+=max(temp[num[i]],temp[num[i-1]]);
    return summ;
}
class TheBrickTowerMediumDivTwo {
public:
	vector <int> find(vector <int> heights) {
	    vector<int> ans;
	    ans.clear();
	    num.clear();
	    temp.clear();
		int len=heights.size();
		if(len==1)
		{
		    ans.push_back(0);
		    return ans;
		}
		for(int i=0;i<len;++i)
		{
		    num.push_back(i);
		    temp.push_back(heights[i]);
		}
		int minn=99999;
		do
		{
		     int m=check();
		     if(m<minn)
		     {
		         ans.clear();
		         for(int i=0;i<len;++i) ans.push_back(num[i]);
		         minn=m;
		     }
		 }while(next_permutation(num.begin(),num.end()));
		return ans;
	}
};



第三题:

题意:给你最多C(1<=C<=4)种颜色的砖块,每种砖块有无限个(1*1*1的立方体),问用砖块拼成一个2*2*h(h<=H)的长方体,并且相邻两块单位立方体颜色相同的对数小于等于K的总方案数是多少。

题解:dp[h][i][j][k][l][x]表示高度h,最上面的面的四个立方体的颜色(i,j,k,l),总共的相邻的不同颜色对数为x。之后就是状态的递推了。

代码:

#include <vector>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>

using namespace std;
#define LL long long
#define mod 1234567891
LL dp[55][5][5][5][5][10];//dp[h][i][j][k][l][x]表示高度h,最上面的面的四个立方体的颜色(i,j,k,l),总共的颜色对数为x
class TheBrickTowerHardDivTwo {
public:
	int find(int C, int K, int H) {
	    int temp;
		memset(dp,0,sizeof(dp));
		for(int i=0;i<C;++i)
		    for(int j=0;j<C;++j)
		        for(int k=0;k<C;++k)
		            for(int l=0;l<C;++l)
		            {
		                temp=((i==j)+(j==l)+(l==k)+(k==i));
		                if(temp<=K) dp[1][i][j][k][l][temp]=1;
		            }
		 for(int h=2;h<=H;++h)
		    for(int x=0;x<=K;++x)
		       	for(int i=0;i<C;++i)
		       	    for(int j=0;j<C;++j)
		       	        for(int k=0;k<C;++k)
		       	            for(int l=0;l<C;++l)
		       	                for(int a=0;a<C;++a)
		       	                    for(int b=0;b<C;++b)
		       	                        for(int c=0;c<C;++c)
		       	                             for(int d=0;d<C;++d)
		       	                             {
		       	                                  temp=((i==j)+(i==k)+(k==l)+(l==j)+(a==i)+(b==j)+(c==k)+(d==l));
		       	                                  if((dp[h-1][a][b][c][d][x])&&(x+temp<=K))
		       	                                      dp[h][i][j][k][l][x+temp]=(dp[h][i][j][k][l][x+temp]+dp[h-1][a][b][c][d][x])%mod;
		       	                             }
		   LL ans=0;
		   for(int h=1;h<=H;++h)
		       for(int x=0;x<=K;++x)
		       	   for(int i=0;i<C;++i)
		               for(int j=0;j<C;++j)
		                   for(int k=0;k<C;++k)
		                       for(int l=0;l<C;++l)
		                           ans=(ans+dp[h][i][j][k][l][x])%mod;
		  return (int)ans;
	}
};


来源:http://blog.youkuaiyun.com/acm_ted/article/details/7943977

List和tree相互转换 java中List结构与tree结构相互转化。可实现list转树与tree转list。本链接为解读https://jingyan.baidu.com/article/455a99507b687da1662778ec.html。 立即下载

相关推荐

基于PCA的故障诊断方法(matlab)

1. PCA原理分析 PCA的原理主要是将原始数据进行降维。其具体工作原理参照:CodingLabs - PCA的数学原理 2. 数据预处理 训练数据集(只有正样本)为维数据,即有n个采样值,每个采样值有m个特征。 2.1 数据归一化 将数据X针对每个特征归一化为均值为0,均方根为1的数据。 其中: 3. PCA降维 3.1 首先求取协方差矩阵 协方差矩阵的公式为: 计算出来的协方差矩阵为特征m*m维矩阵。 3.2 求取特征值和特征向量 求取协方差矩阵R的特征值.

tangxianyu的博客 1万+

SRM 465(DIV1 DIV2)

   这场是白天在基地做的,是再一次回到DIV1之后的一场TC。进room发现排名倒是第5.。。。。。比赛前就定位只要出250分就可以了,所以开场不急着做。慢慢分析,导致边上ZT HS 都拍完了我还读懂题意。。读完题,分析了下就开始。然后果断提交。分不高。才178+。交完我还查了很多数据才敢开500的。看完500想到最小割,但是没想到如何建图,于是就只过了一个题。ST无比紧张,顺利过了250排名房

silentsky的专栏 622

服务器安全配置:二、本地安全策略设置

密码最长使⽤期限”设置为“90天”;“⽤可以还原的加密来存储密码”设置为“禁⽤”“复位账户锁定计数器”设置为15分钟,贴图这里是我自己设置的时间,15分钟也够用,具体看自己需要。”网络访问: 不允许 SAM 帐户和共享的匿名枚举“设置为“已启用””网络访问: 限制对命名管道和共享的匿名访问“设置为“已启用””网络访问: 不允许匿名枚举 SAM 帐户“设置为“已启用”“关机: 允许系统在未登录的情况下关闭”设置为“已禁用”(1)交互式登录:不显示最后的⽤户名”设置为“已启⽤”

weixin_48825672的博客 3136

[TC] SRM 633 div2 250

Problem Statement   Here at [topcoder], we call a contestant a "target" if their rating is 3000 or more. In the arena, the targets have a red icon with a small target on it. Do you want to be

无奈滴微笑 848

保姆级教程:用STM32CubeMX配置GD32的CAN总线(含异常处理)

本文提供了一份详细的STM32CubeMX配置GD32 CAN总线开发指南,涵盖从HAL库移植到异常处理的全过程。重点解析GD32与STM32在CAN总线初始化、报文发送优先级处理等方面的关键差异,并提供优化代码维护与版本控制的实用策略,帮助开发者高效完成项目迁移。

onion的博客 829

Camera tuning flow相机调试流程

相机调试流程分为三大模块:ProcessRaw处理原始数据(黑电平校正、阴影校正),3A实现自动控制(曝光/对焦/白平衡),ISP进行图像精加工(伽马校正、锐化降噪、色彩处理)。三个阶段环环相扣,前阶段为后阶段提供基础,最终输出画质优良且风格化的图像。

weixin_64706696的博客 1230

【Python】list列表和set列表之间的相互删除和补充

针对下面的set,给定一个list,对list中的每一个元素,如果在set中,就将list中相应的元素删除。 首先我用的是以下的方法: s = set(['Adam', 'Lisa', 'Paul']) L = ['Adam', 'Lisa', 'Bart', 'Paul'] x=-1 for m in s: x+=1 for n in L: if m==n: ...

Spr Chan的博客 1107

【项目管理】第8章 项目整合管理 --知识点整理

制定项目章程: 第一步,旨在明确项目的目标、范围、关键里程碑等关键信息,为项目的后续工作奠定基础。制订项目管理计划: 在项目章程的基础上,进一步详细规划项目的执行过程,包括时间、成本、质量、风险等方面的管理计划。指导与管理项目执行: 按照项目管理计划执行项目,同时监控项目的进展,确保项目按照计划进行。监控项目工作: 对项目的执行情况进行持续监控,及时发现并解决问题,确保项目目标的实现。

weixin_42081167的博客 1594

srm554 div2

明天出发去金华,今天抓了场topcoder练练手,结果发现这场比赛的题目貌似还比较适合练手,……orz…… A.水题,分底下一块是红色还是蓝色讨论,然后枚举一遍最后map搞过。 class TheBrickTowerEasyDivTwo { public: map m; int find(int redCount, int redHeight,

喵呜的Blog 714

2023年12月机器人技术等级考试试卷(三级理论) 试题解析

2023年12月机器人技术等级考试试卷(三级理论) 试题解析

http://www.cierobot.com 4095

Android开发工程师面试问题与参考答案

这是一份Android开发工程师职位面试指南,主要针对自研OS开发岗位。岗位要求3年以上独立开发经验,熟悉Android平台UI设计、四大组件和Java基础。面试问题覆盖五大核心领域:基础知识、开发经验、技术深度、问题解决和性能优化。文章提供了典型面试问题及专业参考答案,帮助应聘者准备关键技术点,如多线程处理、HashMap与ConcurrentHashMap区别、Handler机制等。同时建议应聘者结合项目经验展示优化能力,并注意公司提供完善的薪酬福利和团队文化。

郑伟强dev的专栏 893

SRM 554 div2

这场比赛还算顺利,唯一的遗憾就是1000pt没有弄出来,写之前没有考虑清楚,想到什么就写什么,导致错失AK良机,囧。。。。 250pt :     水题,不解释 500pt:    同上 1000pt : 题意:给你最多四种颜色的砖块,每种砖块有无限个(1*1*1的单位立方体),求拼成一个2*2*h(h 可以设计这样的状态来描述这个问题 dp[h][i][j][k][l][x]

努力奋斗才能梦想成真 1186

2025年最新雷电模拟器9.22安装Magisk面具和LSPosed框架完整图文教程 文章末尾附所需软件下载

操作环境:雷电模拟器9.0.22 虚拟系统版本android 91、设置-其他设置-Root权限-开启2、设置-性能设置-System.vmdk可写入3、安装Magisk-18a0b94a-delta(25205).apk,运行并给予root权限4、选择右上角安装弹出“允许“magisk Delta”访问您设备上的照片、媒体内容和文件吗?“选择允许,然后结束magisk进程。5、从新运行magisk选择右上角安装-选择修补boot镜像中的vbmeta和安装到Recovery。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 7094

TC SRM 554

转载请注明出处,谢谢http://blog.youkuaiyun.com/acm_cxlove/article/details/7854526       by---cxlove 第一次做TC,这么欢乐,第一次在DVI 2把3题都过了。 250PT:由于总高度最多才47*(47+47)。而且也只有两种颜色 枚举最下面的颜色,然后枚举,记录一下不同的高度即可。 500PT:div2的这题很简

窝不是爱酱,喵~~~~ 1769

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

SRM554 Div1 500

/* 终态分析:最终有贡献的值为每两个间的最大值(每个值可以出现0,1,2次) 不出现的数可以被比它大的数替代那就让个数最小的不出现其他都出现了一次 如果不考虑字典序的话我们将其排序成一个单调序列即可 如图1 于是我们可以先的找出一个字典序尽量小的递减序列再把剩余的接上去使之递增 如图2 */#include<bits/stdc++.h> using namespa

倘若天下着雨。。。你还在 358

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

SRM554

1.TheBrickTowerEasyDivTwo #include #include #include #define min _MIN using namespace std; class TheBrickTowerEasyDivTwo{ public: //很巧妙的方法 int find(int n,int red,int m,int blue){ if(n>

da_fan_shu_的专栏 321

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SRM148_DIV2

恢复恢复~250public class DivisorDigits { public int howMany(int number) { int result = 0; int temp = number; while (temp > 0) { if ((temp % 10) != 0) {

长屌少女 478

SRM 596 DIV2

250pt: 直接枚举跳过的位置求和即可。 int n,m; int ABS(int a) { if (a &lt; 0) return (-a); else return a; } class FoxAndSightseeing { public: int getMin(vector &lt;int&...

weixin_33928467的博客 162

drools 规则文件 —— 语法

原文:[url]http://liureying.blog.163.com/blog/static/615135201111394058945/[/url] [color=red][b]更详细的看这里[/b][/color]:drools规则语法(一) [url]http://kingsun1980.iteye.com/blog/459272[/url] 使用 Drools 和 JPA 实现持...

pyzheng的专栏 1587

常用集合类(Set、List、Map)

暂无 转载于:https://www.cnblogs.com/jiaolj/p/5463425.html

weixin_34185364的博客 107

TopCoder SRM 649 Div2 Problem 1000 - XorSequenceEasy (思维)

RT

一只冰熊 889

TopCoder SRM 648 Div2 Problem 1000 - ABC (DP)

RT

一只冰熊 1618

srm 617 div2

1:求两个和数x,y,使得x+y = n。刚开始没看懂题目意思就开始敲。。。结果可想而知。再次细心读题才发现。果然要做题必须要先理解题意。(才得了207.52) bool is_prime(int x){ if(x == 2) return true; for(int i = 2; i <= sqrt(x); i ++) if(x % i == 0) return false;

robotcator 675

PMON学习笔记

pmon 学习笔记 如果生命有终点 我就陪你到终点 如果生命没终点 我就陪你到永远…… 本笔记零散写于2009 年2 月~5 月,最初基于2009 年1 月20 日 dev.lemote.com 上的pmon 版本。后期使用的是更新版本,部分代 码和当前版本有误差,不过应该影响不大。 2 目录 扯3 start.S 4 配置空间的访问10 superio_init 11

SdustLiYang的专栏 1万+

在华为服务器 RH 2288H V3上装 windows server 2012 R2的办法

今天帮助技术部的同事解决了在RH 2288H V3上安装2012R2系统,这里把解决办法分享出来,供大家参考。 1、华为的服务器安装系统不能通过U盘进PE的方式安装,只能通过光盘引导来安装。 2、首先在安装的第一步,需要事先下载好2012R2的镜像,刻录成光盘,等待接下来的使用。 3、系统首先插入SERVICE-CD,等待漫长的启动后,进入配置安装系统的选项,此时选项为default,如果选择

工作随笔 5万+
上一篇: Codeforces Round #136 (Div. 2)
下一篇: 【模拟退火】 poj1379 Run Away
ACM_Ted
博客等级 码龄15年 122粉丝 208原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值