1 单词接龙
#include <iostream>
#include <string>
#include <vector>
using namespace std;
const int MAX_LIST_LENGTH = 200;
bool isRight(vector<string>& vec, int length)
{
if(vec.size() < 2)
return false;
string tmpStr = vec[0];
char tmpChar = tmpStr[tmpStr.length() - 1];
string curStr;
char curChar;
for(int i = 0; i < length - 1; ++i)
{
curStr = vec[i];
curChar = curStr[0];
if(curChar != tmpChar)
return false;
tmpChar = tmpStr[tmpStr.length() - 1];
}
return true;
}
int main()
{
string cur_word;
int words_num;
vector<string> words_list;
while(cin >> words_num)
{
for(int i = 0; i < words_num; ++i)
{
cin >> cur_word;
words_list.push_back(cur_word);
}
if(isRight(words_list, words_list.size()))
cout << "Yes" << endl;
else
cout << "No" << endl;
}
}
2 页面调度算法
#include <iostream>
#include <vector>
using namespace std;
bool not_find(vector<int>& vec, int value)
{
int vec_size = vec.size();
for(int i = 0; i < vec_size; ++i)
{
if(value == vec[i])
return false;
}
return true;
}
int main()
{
int n, m;
while(cin >> n >> m)
{
vector<int> cur_list;
vector<int> page_list(m);
for(int i = 0; i < m; ++i)
{
cin >> page_list[i];
}
int times = 1;
cur_list.push_back(page_list[0]);
for(int i = 1; i < m; ++i)
{
if(not_find(cur_list, page_list[i]))
{
++times;
if(cur_list.size() == n)
cur_list.erase(cur_list.begin());
cur_list.push_back(page_list[i]);
}
}
cout << times << endl;
}
}
3 短作业优先
#include <cstdio>
#include <vector>
#include <iostream>
using namespace std;
int main()
{
int n;
while(cin >> n)
{
vector<int> rts;
vector<int> cts;
for(int i = 0; i < n; ++i)
{
int r, t;
cin >> r >> t;
rts.push_back(r);
cts.push_back(t);
}
int cur_time = 1;
double wait_time = 0;
while(!rts.empty())
{
int cur_process = 0;
for(int i = 0; i < rts.size(); ++i)
{
if(rts[i] < rts[cur_process] || (rts[i] == rts[cur_process] && cts[i] < cts[cur_process]))
cur_process = i;
}
if(cur_time > rts[cur_process])
{
wait_time += cur_time - rts[cur_process];
cur_time += cts[cur_process];
}
else
{
cur_time = rts[cur_process] + cts[cur_process];
}
rts.erase(rts.begin() + cur_process);
cts.erase(cts.begin() + cur_process);
}
printf("%.4f\n", wait_time / n);
}
}