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

外贸网站能用阿里云吗dw属于什么网页制作工具

外贸网站能用阿里云吗,dw属于什么网页制作工具,网站建网站建设企业,js网站变灰色代码对于需要模拟时间的算法题#xff0c;可以将开始时间作为游戏的开始#xff08;如Unity的Start或UE的BeginPlay#xff09;#xff0c;每一秒的模拟作为游戏的画面更新#xff08;如Unity的Update或UE的Tick#xff09;#xff0c;结束时间可作为游戏的结束#xff08;…对于需要模拟时间的算法题可以将开始时间作为游戏的开始如Unity的Start或UE的BeginPlay每一秒的模拟作为游戏的画面更新如Unity的Update或UE的Tick结束时间可作为游戏的结束如Unity的OnDestroy或UE的EndPlay。 从这个角度来看我们可以将PAT甲级1026 Table Tennis当成一个游戏看待在游戏进行过程中游戏玩家可能随时会让一位球员来打球。因此可以将可能到来的球员当成玩家输入来处理。 在每个时刻每一秒我们读取玩家输入然后按照指定的游戏玩法题目的规则来进行游戏数据的更新。 对于游戏玩法其要点如下 球员可能是VIP球员也可能是一个普通球员VIP球员唯一享有的特权就是当有空闲的VIP球桌他可以上VIP球桌打球。这意味着如果没有空闲的VIP球桌VIP球员就是普通球员如果没有VIP球员在等待打球那么VIP球桌就是普通球桌。……看似很复杂其实不影响游戏逻辑。 因此按照第二点玩法我们可以给出游戏在每一秒的逻辑 获取玩家输入获得该时刻到来的球员题目说每秒只会到来一个球员将其加入球员等待队列对于VIP球员将其额外加入VIP球员等待队列。遍历每一个VIP球桌按照VIP球员到来的顺序让其上球桌打球遍历每一个球桌按照球员到来的顺序让其上球桌打球 #includebits/stdc.h using namespace std;const int kOpenTime 8 * 60 * 60; // 开门时间 8点 const int kCloseTime 21 * 60 * 60; // 关门时间 21点// 玩家类 struct Player {int arrvTime; // 球员到达时间int playTime; // 球员占用球桌的时间int waitTime; // 球员等待时间bool isVip;// 球员是不是vipint num; // 球员的输出的编号static const int kInvalidNum 0xffffff;Player(): arrvTime(kOpenTime), playTime(0), waitTime(0), isVip(false), num(kInvalidNum) {}[[nodiscard]] bool isPlayed() const { return num ! kInvalidNum; }; };// 球桌类 struct Table {int endTime; // 上一对球员打完球离开该球桌的时间int id;bool isVip;// 是不是vip桌int serveNum; // 桌子招待过多少球员Table(): id{-1}, endTime(kOpenTime), isVip(false), serveNum(0) {}[[nodiscard]] bool isFree(int nowTime) const { return endTime nowTime; } };// 游戏场景中某个对象所挂载的脚本类 class TableTennisManager { private:vectorPlayer m_players;// 下面两个queue内存储的是m_players内元素的指针queuePlayer * playersWaitQueue;queuePlayer * vipPlayersWaitQueue;int m_unarrivedIDBegin 0;int m_playedCnt 0; // 记录球员上桌的顺序vectorTable * m_tables_VIP;vectorTable * m_tables;// 将每个时刻到来的球员当做一个输入将该球员放入队列中让HandleQueue来处理void HandleInput(int nowTime) {for(int playerID m_unarrivedIDBegin; playerID m_players.size(); playerID) {Player player m_players[playerID];if(player.arrvTime nowTime) {m_unarrivedIDBegin;playersWaitQueue.emplace(player);if(player.isVip)vipPlayersWaitQueue.emplace(player);} else {break;}}}void HandleQueue(int nowTime, vectorTable * tables, queuePlayer * waitPlayers){// 清除已处理过的球员while(!waitPlayers.empty()) {if(waitPlayers.front()-isPlayed()) {waitPlayers.pop();} else {break;}}for(auto table: tables) {if(!table-isFree(nowTime))continue;if(waitPlayers.empty())break;/* 该桌空闲让正在等待的球员上桌 */// 弹出等待队列处理该球员Player * player waitPlayers.front();waitPlayers.pop();// 更新球员数据player-waitTime nowTime - player-arrvTime;player-num m_playedCnt;// 更新球桌数据table-endTime nowTime player-playTime;table-serveNum;}}public:/// 游戏开始接收游戏过程中可能需要的数据输入模拟玩家输入并构造游戏场景————在第一次调用Update前调用// m_players模拟玩家输入m_tables是游戏场景所需的游戏对象void Begin(){int nPlayers, nTables, nVipTables; // 球员对的数量、球桌数、VIP球桌数// 输入在营业时间内到达的球员数据cin nPlayers;m_players.resize(nPlayers);int nPlayers_real 0; // 记录符合要求的输入数据到达时间在21点之前的球员for(int i 0; i nPlayers; i) {// 输入每队球员的到达时间、占用球桌的时间最多不能超过两小时、是否是VIPint h, m, s, playT, isVip;scanf(%d:%d:%d %d %d\n, h, m, s, playT, isVip); //NOLINTint arvT (h*60 m)*60 s; // 按照秒数记录player到达时间// 只保留在关门前到达的球员if(arvT kCloseTime){Player player;player.arrvTime arvT;player.playTime playT 120 ? 120 * 60 : playT * 60; // 打球超过2小时的都要强制变成120分钟player.isVip isVip;m_players[nPlayers_real] player;}}m_players.resize(nPlayers_real);// 输入球桌数据cin nTables nVipTables;m_tables.resize(nTables);for(int i 0; i nTables ; i) {m_tables[i] new Table{};}// 输入VIP球桌数据for(int i 0; i nVipTables; i) {int tableID;cin tableID;tableID--;m_tables[tableID]-isVip true; // 标记vip桌m_tables[tableID]-id tableID;m_tables_VIP.push_back(m_tables[tableID]);}// 按照球员到达时间排序sort(m_players.begin(), m_players.end(), [](Player a, Player b){return a.arrvTime b.arrvTime;});}/// 更新游戏数据更新游戏场景数据m_players和m_tables————每个时刻每秒调用一次void Update(int nowTime){// 处理该时刻可能到达的球员HandleInput(nowTime);// 在VIP球桌上处理VIP球员HandleQueue(nowTime, m_tables_VIP, vipPlayersWaitQueue);// 在所有球桌上处理所有球员上一步因为VIP球桌已满而未能进入VIP球桌的VIP球员将会被视为普通球员处理HandleQueue(nowTime, m_tables, playersWaitQueue);}/// 游戏结束输出游戏执行结果————在最后一次Update执行完调用void End(){// 将球员按照打球的顺序进行排序sort(m_players.begin(), m_players.end(), [](Player a, Player b){return a.num b.num;});// 输出球员的打球信息for(Player player: m_players) {if(player.num 0xffffff) continue; // 超过21点才能打球的球员就不能输出了int ah player.arrvTime/3600, am player.arrvTime % 3600 / 60, as player.arrvTime % 60;int bh (player.arrvTime player.waitTime) / 3600, bm (player.arrvTime player.waitTime) % 3600 / 60, bs (player.arrvTime player.waitTime) % 60;// 等待的分钟数要四舍五入player.waitTime player.waitTime/60 (player.waitTime%60 30);printf(%02d:%02d:%02d %02d:%02d:%02d %d\n,ah,am,as,bh,bm,bs,player.waitTime);}// 输出球桌的接待信息for(int i 0; i m_tables.size(); i) {cout m_tables[i]-serveNum (i m_tables.size() - 1 ? \n : );delete m_tables[i];}} };int main() {TableTennisManager tennisManager;tennisManager.Begin();for (int nowTime kOpenTime; nowTime kCloseTime; nowTime) {// 每秒调用一次对相关数据进行更新tennisManager.Update(nowTime);}tennisManager.End();return 0; }
http://www.dnsts.com.cn/news/84283.html

相关文章:

  • 网站建设和推广话术6专业的集团网站建设
  • 推荐几个看黄的网站云主机重装系统后网站重新部署吗
  • 商丘做网站的费用江西专业南昌网站建设
  • 2023设计院裁员惨烈程度黑帽seo技术培训
  • 2022昆明今天刚刚发生的新闻网站关键词优化遇到的情况和解决方法
  • 满屏网站做多大尺寸西安模板网站建站
  • 网站建设的书籍公司网站建设的需求
  • 网站建设华科技最好的开发网站有哪些
  • 自定义导航网站 源码高端网站制作多少钱
  • 网站建设合同概念wordpress文章图片点击放大浏览
  • 青之峰网站建设个人做网站怎么赚钱
  • 个人网站备案材料暴雪游戏服务中心
  • 网站开发英文翻译中国外贸网站
  • 买了dede模板之后就可以做网站asp做的药店网站模板
  • 做淘客网站能干嘛成都seo
  • 做网站需要提供什么企业邮箱怎么找
  • 微网站建设套餐怎么看网站有没有做推广
  • 做优化需要发多少个网站南昌电子商务网站建设
  • 做怎样的网站能赚钱吗网站建设教程突
  • 响应式网站概况淮北建筑大学
  • 百度生成在线网站地图广州app开发公司排名十强
  • 网站开发语言比较建筑工程项目信息查询
  • 建设银行广州分行网站wordpress onepager
  • ui设计做网站制作网站技术
  • 平凉建设局网站宁波造价工程信息网
  • 网页设计与网站建设课程网站建设版块分类
  • 如何自建网站?建筑兼职招聘网
  • 免费的建筑设计网站爱民网站制作
  • 基于html5开发的网站开发如何破解wordpress数据库
  • 做百科需要发哪些网站网页设计图片的代码