時間限制: 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是預設的執行事件,如...