hihoCoder~~~#1051 : 补提交卡
来源:互联网 发布:移动4g 网络 编辑:程序博客网 时间:2024/05/29 11:42
时间限制:2000ms
单点时限:1000ms
内存限制:256MB
- 样例输入
3 5 1 34 77 82 83 84 5 2 10 30 55 56 90 5 10 10 30 55 56 90
- 样例输出
76 59
100
惭愧啊惭愧,太弱了。AC一道简单的题,
存在问题:1,花了太多时间。2,算法太low。
进步之处:坚持每天一道。
后续改进:明天和同类别人的方法对比,补足方法上的low性。
虽然很水的代码,但是AC了,如下:
// 补提交卡.cpp : Defines the entry point for the console application.//#include <iostream>#include <vector>#include <string>#include <fstream>using namespace std;typedef struct dataGroup{int N, M;vector<int> data;};vector<vector<int>> seedSeeking(vector<int> Ns, int M){vector<vector<int>> seeds;int N = Ns.size();if (N <= M){seeds.push_back(Ns);}if (N > M){vector<int> curSeeds;for (size_t i = 0; i < Ns.size(); i++){if ((i+M) <= N) //确保剩余的元素足够挑选{if (M == 1){curSeeds.push_back(Ns[i]);seeds.push_back(curSeeds);curSeeds.clear();continue;}for (size_t p = i+1; p < Ns.size(); p++){if ((p+M) <= N){curSeeds.push_back(Ns[i]);int curM = 0;while (curM < M - 1){curSeeds.push_back(Ns[p + curM]);curM++;}}seeds.push_back(curSeeds);curSeeds.clear();}}}}return seeds;}int main(){int T, N, M;vector<dataGroup> dataAll;scanf("%d", &T);while (T--){dataGroup curAll;vector<int> data;scanf("%d%d", &N, &M);for (size_t i = 0; i < N; i++){int curData;scanf("%d", &curData);data.push_back(curData);}curAll.N = N;curAll.M = M;curAll.data = data;dataAll.push_back(curAll);}vector<int> label;for (size_t i = 0; i < 100; i++){label.push_back(1);}for (size_t i = 0; i < dataAll.size(); i++){int score = 1;dataGroup curAll = dataAll[i];vector<int> labelCur = label;for (size_t i = 0; i < curAll.data.size(); i++){labelCur.at(curAll.data[i]-1) = 0;}vector<vector<int>> curSeeds = seedSeeking(curAll.data, curAll.M);for (size_t i = 0; i < curSeeds.size(); i++){int scoreCur = 1;vector<int> labelCur1 = labelCur;for (size_t p = 0; p < curSeeds[i].size(); p++){labelCur1.at(curSeeds[i][p] - 1) = 1;}for (size_t q = 0; q < labelCur1.size()-1; q++){if (labelCur1[q] == labelCur1[q+1]){scoreCur++;}else{if (score < scoreCur){score = scoreCur;}scoreCur = 1;}}if (score < scoreCur){score = scoreCur;}}cout << score << endl;}}
描述
小Ho给自己定了一个宏伟的目标:连续100天每天坚持在hihoCoder上提交一个程序。100天过去了,小Ho查看自己的提交记录发现有N天因为贪玩忘记提交了。于是小Ho软磨硬泡、强忍着小Hi鄙视的眼神从小Hi那里要来M张"补提交卡"。每张"补提交卡"都可以补回一天的提交,将原本没有提交程序的一天变成有提交程序的一天。小Ho想知道通过利用这M张补提交卡,可以使自己的"最长连续提交天数"最多变成多少天。
输入
第一行是一个整数T(1 <= T <= 10),代表测试数据的组数。
每个测试数据第一行是2个整数N和M(0 <= N, M <= 100)。第二行包含N个整数a1, a2, ... aN(1 <= a1 < a2 < ... < aN <= 100),表示第a1, a2, ... aN天小Ho没有提交程序。
输出
对于每组数据,输出通过使用补提交卡小Ho的最长连续提交天数最多变成多少。
0 0
- hihoCoder:#1051 补提交卡
- hihoCoder#1051 : 补提交卡
- [HiHoCoder]#1051 : 补提交卡
- HihoCoder#1051:补提交卡
- HihoCoder 1051:补提交卡
- hihoCoder #1051 补提交卡
- hihoCoder 1051 补提交卡
- Hihocoder 1051 补提交卡
- # hihocoder #1051 补提交卡
- hihocoder 1051 补提交卡
- hihocoder 1051 : 补提交卡
- hihocoder #1051补提交卡
- [HihoCoder]#1051 : 补提交卡
- 【hihoCoder】#1051 : 补提交卡
- hihocoder #1051 : 补提交卡
- hihoCoder#1051 : 补提交卡
- 【hihocoder】#1051 : 补提交卡
- hihoCoder~~~#1051 : 补提交卡
- Java Mail发送邮件(带多个附件)
- 2006-09-24
- Java 双检锁问题
- Sun HotSpot 1.4.1 JVM学习总结
- UVA 10082
- hihoCoder~~~#1051 : 补提交卡
- 模仿微信界面tabhost底部导航——使用继承ActivityGroup方式
- JVM 结构小结
- javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
- Hibernate学习笔记2--持久化对象的状态
- ORACLE SQL性能优化
- Android6.0系统以下的麦克风权限处理
- android使用implements ActionBar.TabListener的方式创建导航
- .Net CLR 内存模型小结