英雄卡(輸入計數) 標記思想

2022-03-11 05:11:34 字數 1383 閱讀 1607

時間限制: 1 sec  記憶體限制: 128 mb

提交: 821  解決: 143

[提交] [狀態] [討論版] [命題人:admin]

題目描述

小李非常迷戀收集各種乾脆面裡面的英雄卡,為此他曾經連續乙個月都只吃乾脆面這一種零食,但是有些稀有英雄卡真的是太難收集到了。後來某商場搞了一次英雄卡兌換活動,只要你有三張編號連續的英雄卡,你就可以換任意編號的英雄卡。小李想知道他最多可以換到幾張英雄卡(新換來的英雄卡不可以再次兌換)。

輸入第一行,共乙個整數n(1<=n<=10000),表示小李擁有的英雄卡數。

第二行,共n個空格隔開的數字ai(1<=ai<=100000),表示英雄卡的編號。

輸出輸出僅有一行,共1個整數,表示小李最多可以換到的英雄卡。

複製樣例資料

6

3 1 2 4 4 5

樣例輸出1提示

1 2 3三張編號連續,可以換一張,換完後剩下4 4 5,不符合兌換規則,無法繼續兌換。

這個題有點坑 本來題目中說是 (1<=n<=10000) ,所以我把陣列開到稍微大一點 提示 執行錯誤 問過學長後 開大了範圍 但時間超限 沒有辦法 只能換思路 。

通過輸入計數解決 重複 匹配 問題。

在輸入資料的時候就用一維陣列 記錄輸入的(每個)值的數目(肯定 如果數字重複的話 會在原來數目基礎上增加)。

將陣列排序(輸入資料的陣列) 然後用一層for迴圈+while迴圈   for迴圈跑  輸入的陣列 用while 判斷並且查詢能夠構成幾組3個連續的數  直到跳出迴圈 再取找下乙個。(具體看**)

#include#includeusing namespace std;

int a[100005],count2[100005]=; //資料有誤 要將陣列開大,不然會執行錯誤

int main()

}printf("%d\n",count1);

return 0;

}

*思路:(雖然不錯 但由於使用2層for迴圈會超時)

先排序 然後從第乙個資料開始完後判斷  滿足a[i]+1=a[i+1]的話count++,直到count==2,將之前用過的i i+1 i+2標記以下

避免之後迴圈中再次使用

#include#include#includeusing namespace std;

int a[100006],flag[100006],c[5];

int main()

sort(a,a+n);

count=0;

for(i=0;iif(k==3)}}

}printf("%d\n",count);

return 0;

}

英雄卡(輸入計數) 標記思想

時間限制 1 sec 記憶體限制 128 mb 提交 821 解決 143 提交 狀態 討論版 命題人 admin 題目描述 小李非常迷戀收集各種乾脆面裡面的英雄卡,為此他曾經連續乙個月都只吃乾脆面這一種零食,但是有些稀有英雄卡真的是太難收集到了。後來某商場搞了一次英雄卡兌換活動,只要你有三張編號連...

英雄聯盟阿卡麗操作技巧

ap裝 海克斯科技槍刃,中婭沙漏,巫妖之禍,禦空之杖,滅世者的死,水銀之靴 不推薦法師之靴,阿卡麗團戰傷害很高,不需要鞋子的一點法穿,相比之下水銀之靴可以提高阿卡麗團戰的存活率,還減少30 的控制時間 推薦 主q 改版完後 副e或副w都可以 建議副e清線比較快,但w的追殺和逃跑比較強勢 符文推薦 對...

檢測ID卡的輸入或者是其它卡的輸入

下面是它的使用方法 物件不用建立的,引用了該模組就可以使用,應該它在模組引用的時候就已經建立出來的了。呼叫的方法就是這麼簡單了。下面的是特殊情況下呼叫的方法 idcheckobj.onidcheckresult sp onidcheckreturn onidcheckresult是預設的執行事件,如...