国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

一個(gè)網(wǎng)站可以做多少個(gè)小程序營(yíng)銷推廣方案

一個(gè)網(wǎng)站可以做多少個(gè)小程序,營(yíng)銷推廣方案,在線網(wǎng)站做圖集相冊(cè),如何設(shè)置網(wǎng)站關(guān)鍵字題目描述 某工程師為了解決服務(wù)器負(fù)載過(guò)高的問(wèn)題,決定使用多個(gè)服務(wù)器來(lái)分擔(dān)請(qǐng)求消息。 現(xiàn)給定 k 臺(tái)服務(wù)器(編號(hào)從 1 到 k),以及一批請(qǐng)求消息的信息,格式為到達(dá)時(shí)刻 負(fù)載大小,消息說(shuō)明: 每個(gè)時(shí)刻…

題目描述

某工程師為了解決服務(wù)器負(fù)載過(guò)高的問(wèn)題,決定使用多個(gè)服務(wù)器來(lái)分擔(dān)請(qǐng)求消息。
現(xiàn)給定 k 臺(tái)服務(wù)器(編號(hào)從 1 到 k),以及一批請(qǐng)求消息的信息,格式為到達(dá)時(shí)刻 負(fù)載大小,消息說(shuō)明:
每個(gè)時(shí)刻最多只有一條消息到達(dá);
負(fù)載大小表示服務(wù)器處理該消息所需時(shí)長(zhǎng)。
請(qǐng)計(jì)算在負(fù)載分擔(dān)規(guī)則下,哪些服務(wù)器處理的負(fù)載最高(服務(wù)器處理的負(fù)載為所處理的所有消息的負(fù)載累加和),并以升序返回這些服務(wù)器的編號(hào)。
負(fù)載分擔(dān)規(guī)則:
按順序循環(huán)分配服務(wù)器,如:有3臺(tái)服務(wù)器且都空閑,分配的方式為 1->2->3->1… ;
如果某臺(tái)服務(wù)器繁忙,則跳過(guò)該服務(wù)器;
如果一條消息到達(dá)時(shí)所有服務(wù)器繁忙,則丟棄這條消息。

解答要求

時(shí)間限制:1000ms, 內(nèi)存限制:512MB
輸入
第一行為服務(wù)器的個(gè)數(shù) k,k 的范圍 [1, 50000]
第二行為請(qǐng)求消息個(gè)數(shù) n,n 的范圍 [1, 50000]
隨后的 n 行為各條消息的到達(dá)時(shí)刻和負(fù)載大小(注意并非按到達(dá)時(shí)刻升序給出)。
消息到達(dá)時(shí)刻的范圍 [1, 10^9],負(fù)載大小的范圍 [1, 10^9]

輸出

處理負(fù)載最多的服務(wù)器編號(hào),注意按升序輸出。

樣例

輸入樣例 1

3
7
1 15
2 10
12 10
5 10
6 10
30 15
32 10

輸出樣例 1

1 3

提示樣例 1

根據(jù)輸入信息,經(jīng)過(guò)分析可得以下表:

到達(dá)時(shí)刻消息負(fù)載完成時(shí)刻(不包含)分配服務(wù)器號(hào)
115161
210122
510153
61016丟棄
1210222
3015453
3210421

根據(jù)上表分析,1和3號(hào)服務(wù)器處理的負(fù)載都為25,按照升序排列,輸出的結(jié)果為:1 3

Java算法源碼

import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;public class Main {// 待實(shí)現(xiàn)函數(shù),在此函數(shù)中填入答題代碼static int[] findHighestLoadServers(int serverNum, Message[] messages) {boolean[] isBusy = new boolean[serverNum]; // 下標(biāo)為server編號(hào)-1,值為是否忙碌int[] serverLoad = new int[serverNum]; // 下標(biāo)為server編號(hào)-1,值為總LoadMessage[] processingMsg = new Message[serverNum]; // 下標(biāo)為server編號(hào)-1,值為目前仍在處理的 message信息// 首先將消息按時(shí)間排序Arrays.sort(messages, Comparator.comparingInt(o -> o.time));int lastProcessIdx = -1; // 上次分配執(zhí)行的服務(wù)器,從-1開(kāi)始// 依次處理 messagesfor (Message message : messages) {// 首先更新時(shí)間updateTime(message.time, isBusy, processingMsg, serverNum);// 從 lastProcessIdx 下一個(gè)位置開(kāi)始,循環(huán)找到第一個(gè)空閑的server// 按順序循環(huán)分配服務(wù)器:i最大值可為 2 * serverNum,使用 i % serverNum 得到對(duì)應(yīng)循環(huán)的下標(biāo)for (int i = lastProcessIdx + 1; i < 2 * serverNum; i++) {// 不忙,說(shuō)明找到空閑的Serverif (!isBusy[i % serverNum]) {processingMsg[i % serverNum] = message; // message添加到processingMsgserverLoad[i % serverNum] += message.load; // 計(jì)算該server的總負(fù)載值isBusy[i % serverNum] = true; // 標(biāo)記該server為忙碌lastProcessIdx = i % serverNum; // 記錄下 lastProcessIdx 以下次循環(huán)使用break;}}}// 統(tǒng)計(jì)結(jié)果List<int[]> idLoadArrList = new ArrayList<>(); // [serverId, serverLoad]for (int i = 0; i < serverNum; i++) {idLoadArrList.add(new int[] {i + 1, serverLoad[i]});}idLoadArrList.sort((o1, o2) -> o1[1] != o2[1] ? o2[1] - o1[1] : o1[0] - o2[0]); // 按serverLoad降序,serverId升序// 生成答案List<Integer> ansList = new ArrayList<>();ansList.add(idLoadArrList.get(0)[0]);int maxLoad = idLoadArrList.get(0)[1];int i = 1;// 將與最大值相等的serverId加入結(jié)果集while (i < idLoadArrList.size() && idLoadArrList.get(i)[1] == maxLoad) {ansList.add(idLoadArrList.get(i)[0]);i++;}return ansList.stream().mapToInt(Integer::valueOf).toArray();}private static void updateTime(int time, boolean[] isBusy, Message[] processingMsg, int serverNum) {for (int i = 0; i < serverNum; i++) {// 空閑的不處理if (!isBusy[i]) {continue;}// 忙碌的檢查是否處理完了Message message = processingMsg[i];if (message.time + message.load <= time) {isBusy[i] = false;processingMsg[i] = null;}}}static class Message {int time;int load;};public static void main(String[] args) {Scanner cin = new Scanner(System.in, StandardCharsets.UTF_8.name());int serverNum = cin.nextInt();int messageNum = cin.nextInt();Message[] messages = new Message[messageNum];for (int i = 0; i < messages.length; i++) {Message message = new Message();message.time = cin.nextInt();message.load = cin.nextInt();messages[i] = message;}cin.close();int[] highestLoadServers = findHighestLoadServers(serverNum, messages);String[] strResult = Arrays.stream(highestLoadServers).mapToObj(String::valueOf).toArray(String[]::new);System.out.println(String.join(" ", strResult));}
}
http://aloenet.com.cn/news/46322.html

相關(guān)文章:

  • 做301跳轉(zhuǎn)會(huì)影響之前網(wǎng)站排名嗎上海谷歌推廣
  • 在國(guó)外網(wǎng)站做中國(guó)旅游推廣百度關(guān)鍵詞熱度排名
  • 什么專業(yè)可以做網(wǎng)站百度店鋪免費(fèi)入駐
  • 學(xué)校定制網(wǎng)站建設(shè)公司深圳優(yōu)化公司高粱seo較
  • 網(wǎng)站建設(shè)注冊(cè)密碼咋弄百度一下百度百科
  • 做網(wǎng)頁(yè)靠哪個(gè)網(wǎng)站賺錢湖南競(jìng)價(jià)優(yōu)化哪家好
  • 服務(wù)器租用網(wǎng)站搜索關(guān)鍵詞排名優(yōu)化軟件
  • 網(wǎng)站 申請(qǐng)百度在線客服中心
  • 邗江區(qū)城鄉(xiāng)建設(shè)局網(wǎng)站數(shù)據(jù)分析軟件
  • 如何在本地安裝部署 wordpress深度優(yōu)化
  • 順德企業(yè)手機(jī)網(wǎng)站建設(shè)廣州seo推廣優(yōu)化
  • 好搜客網(wǎng)站優(yōu)勢(shì)的seo網(wǎng)站優(yōu)化排名
  • 眾云網(wǎng)聯(lián)做的網(wǎng)站效果好嗎網(wǎng)絡(luò)營(yíng)銷外包公司
  • 茂易網(wǎng)站建設(shè)鏈接購(gòu)買平臺(tái)
  • 淮安企業(yè)網(wǎng)站搜一搜
  • wordpress拿站清遠(yuǎn)新聞最新消息
  • b2b平臺(tái)選亞馬遜企業(yè)購(gòu)網(wǎng)站優(yōu)化排名的方法
  • 上海百度關(guān)鍵詞推廣名片seo什么意思
  • 做企業(yè)網(wǎng)站需要做什么seo托管
  • 廈門外貿(mào)網(wǎng)站建設(shè)公司惠州seo排名收費(fèi)
  • 黃村網(wǎng)站建設(shè)價(jià)格臨沂做網(wǎng)絡(luò)優(yōu)化的公司
  • 網(wǎng)站源碼素材視頻專用客戶端app
  • 怎么開(kāi)網(wǎng)店無(wú)貨源店鋪山東公司網(wǎng)站推廣優(yōu)化
  • 怎樣給網(wǎng)站做排名優(yōu)化網(wǎng)絡(luò)加速器
  • 事業(yè)單位做網(wǎng)站需要前置審批嗎如何進(jìn)行網(wǎng)站性能優(yōu)化
  • 免費(fèi)做翻頁(yè)頁(yè)面的網(wǎng)站微信crm管理系統(tǒng)
  • 知名網(wǎng)站建設(shè)制作平臺(tái)app開(kāi)發(fā)制作
  • 騰訊網(wǎng)站建設(shè)外鏈生成網(wǎng)站
  • 青島專業(yè)網(wǎng)站設(shè)計(jì)的公司百度首頁(yè)優(yōu)化
  • 怎樣做企業(yè)手機(jī)網(wǎng)站工具站seo