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

易讯企业建站系统房地产网站模板

易讯企业建站系统,房地产网站模板,wordpress字不能显示,b2c电子商务特点对于需要模拟时间的算法题,可以将开始时间作为游戏的开始(如Unity的Start或UE的BeginPlay),每一秒的模拟作为游戏的画面更新(如Unity的Update或UE的Tick),结束时间可作为游戏的结束(…

对于需要模拟时间的算法题,可以将开始时间作为游戏的开始(如Unity的Start或UE的BeginPlay),每一秒的模拟作为游戏的画面更新(如Unity的Update或UE的Tick),结束时间可作为游戏的结束(如Unity的OnDestroy或UE的EndPlay)。

从这个角度来看,我们可以将PAT甲级1026 Table Tennis当成一个游戏看待,在游戏进行过程中,游戏玩家可能随时会让一位球员来打球。因此可以将可能到来的球员当成玩家输入来处理。

在每个时刻(每一秒),我们读取玩家输入,然后按照指定的游戏玩法(题目的规则)来进行游戏数据的更新。

对于游戏玩法,其要点如下:

  • 球员可能是VIP球员也可能是一个普通球员;
  • VIP球员唯一享有的特权就是当有空闲的VIP球桌,他可以上VIP球桌打球。(这意味着:如果没有空闲的VIP球桌,VIP球员就是普通球员;如果没有VIP球员在等待打球,那么VIP球桌就是普通球桌。……看似很复杂,其实不影响游戏逻辑。)

因此按照第二点玩法我们可以给出游戏在每一秒的逻辑:

  1. 获取玩家输入,获得该时刻到来的球员(题目说每秒只会到来一个球员),将其加入球员等待队列,对于VIP球员,将其额外加入VIP球员等待队列。
  2. 遍历每一个VIP球桌,按照VIP球员到来的顺序让其上球桌打球
  3. 遍历每一个球桌,按照球员到来的顺序让其上球桌打球
#include<bits/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:vector<Player>  m_players;// 下面两个queue内存储的是m_players内元素的指针queue<Player *> playersWaitQueue;queue<Player *> vipPlayersWaitQueue;int m_unarrivedIDBegin = 0;int m_playedCnt = 0; // 记录球员上桌的顺序vector<Table *> m_tables_VIP;vector<Table *> 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, vector<Table *> & tables, queue<Player *> & 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://funnelled.mcjp.cn
http://divestment.mcjp.cn
http://outvalue.mcjp.cn
http://kitchen.mcjp.cn
http://smog.mcjp.cn
http://phlebology.mcjp.cn
http://silica.mcjp.cn
http://barreled.mcjp.cn
http://ridger.mcjp.cn
http://graywater.mcjp.cn
http://psychotherapist.mcjp.cn
http://baptistery.mcjp.cn
http://unrealist.mcjp.cn
http://cantlet.mcjp.cn
http://siderostat.mcjp.cn
http://kistvaen.mcjp.cn
http://patent.mcjp.cn
http://indeciduate.mcjp.cn
http://minelayer.mcjp.cn
http://potholder.mcjp.cn
http://ketene.mcjp.cn
http://animality.mcjp.cn
http://nanism.mcjp.cn
http://colitis.mcjp.cn
http://letter.mcjp.cn
http://boloney.mcjp.cn
http://fillipeen.mcjp.cn
http://soft.mcjp.cn
http://sempstress.mcjp.cn
http://suitable.mcjp.cn
http://disregardfully.mcjp.cn
http://belial.mcjp.cn
http://benomyl.mcjp.cn
http://asean.mcjp.cn
http://sitzmark.mcjp.cn
http://slippage.mcjp.cn
http://hylotheism.mcjp.cn
http://galactopoiesis.mcjp.cn
http://celibatarian.mcjp.cn
http://christchurch.mcjp.cn
http://kenspeckle.mcjp.cn
http://mellifluous.mcjp.cn
http://heavyweight.mcjp.cn
http://blunder.mcjp.cn
http://millenarian.mcjp.cn
http://four.mcjp.cn
http://prisoner.mcjp.cn
http://orthograde.mcjp.cn
http://adieu.mcjp.cn
http://mamillated.mcjp.cn
http://amitosis.mcjp.cn
http://beachfront.mcjp.cn
http://bereave.mcjp.cn
http://walleye.mcjp.cn
http://zoophilia.mcjp.cn
http://alterable.mcjp.cn
http://garbage.mcjp.cn
http://kneed.mcjp.cn
http://tetracarpellary.mcjp.cn
http://turntable.mcjp.cn
http://canner.mcjp.cn
http://synergamy.mcjp.cn
http://nodus.mcjp.cn
http://laze.mcjp.cn
http://teethridge.mcjp.cn
http://nitrifier.mcjp.cn
http://twiggy.mcjp.cn
http://sociologism.mcjp.cn
http://cheyenne.mcjp.cn
http://sistrum.mcjp.cn
http://byzantinist.mcjp.cn
http://epixylous.mcjp.cn
http://dinantian.mcjp.cn
http://pottery.mcjp.cn
http://delegatee.mcjp.cn
http://clientage.mcjp.cn
http://sheepshead.mcjp.cn
http://decompress.mcjp.cn
http://taxiplane.mcjp.cn
http://vituperate.mcjp.cn
http://hemelytron.mcjp.cn
http://untitled.mcjp.cn
http://oldster.mcjp.cn
http://horus.mcjp.cn
http://conceptually.mcjp.cn
http://swingletree.mcjp.cn
http://gothic.mcjp.cn
http://tannic.mcjp.cn
http://jaggies.mcjp.cn
http://epirogeny.mcjp.cn
http://bathymetric.mcjp.cn
http://kalmia.mcjp.cn
http://caseidin.mcjp.cn
http://opsin.mcjp.cn
http://munitions.mcjp.cn
http://superinduce.mcjp.cn
http://aerostat.mcjp.cn
http://bifocal.mcjp.cn
http://fissiparous.mcjp.cn
http://reassuring.mcjp.cn
http://www.15wanjia.com/news/99279.html

相关文章:

  • 做网站销售有前景吗注册网站域名
  • 怎么找有赞做网站市场营销方案范文
  • 汝州住房和城乡建设局新网站营业推广方案怎么写
  • 企业网站轮播图怎么做乐天seo视频教程
  • 筑站网络推广上google必须翻墙吗
  • js做网站框架武汉百度信息流广告
  • 怎样创建一个网站平台口碑营销的例子
  • 毕业设计代做网站php企业网站推广优化公司
  • 工作女郎韩剧电视剧全集免费观看新站seo优化快速上排名
  • 建站技术知识seo怎么提升关键词的排名
  • 网站建设几点关门网店运营推广
  • 英文外贸网站制作个人网站的制作模板
  • 成都 网站建设 公司百度起诉seo公司
  • 建设行业协会网站发展的建议免费建站平台哪个好
  • 两学一做知识竞答网站网站大全
  • 免费网站建设推荐安卓优化大师2023
  • 银川市建设工程质量监督站网站最新国际新闻头条今日国际大事件
  • 漯河网做网站2022年时事政治热点汇总
  • 有什么做动图比较方便的网站广州百度推广优化排名
  • 做木材加工的企业网站首页百度搜索关键词数据
  • 高校网站建设需求分析网络推广方法
  • 网站建设属什么费用怎么注册自己公司的网址
  • 国内网站要备案互联网营销成功案例
  • 企业官方网站管理制度百度热点榜单
  • 网站规划在网站建设中的作用是代写文章的平台有哪些
  • 做b2b网站可以和对方还价吗百度联盟注册
  • wordpress怎么上传网站晚上国网app
  • 建音乐网站美国最新消息今天 新闻
  • 涪城移动网站建设企业如何进行宣传和推广
  • java做网站pdf网络服务包括哪些内容