Зимняя рыбалка в алгоритме мутной DAY2 сортировочного

Предупреждение: Данная статья является блоггером оригинал статьи, для перепечатки, пожалуйста, свяжитесь с блоггерами. https://blog.csdn.net/GregoryHanson/article/details/86626670

Отделочные знания

Использование функции сортировки (в порядке возрастания):

sort(vec.begin(),vec.end(),cmp);
//sort(开始地址,结束地址,cmp);

CMP функция по умолчанию опущена, чтобы переписать параметры сортировки, функцию коррекции CMP. Такие, как изменения в порядке убывания:

bool cmp(const int &a, const int &b) {
	return a > b;
}

Presetation Error (вывод ошибки формата): Проверьте конец строки не кратен-вывод пространства. Это не может быть никакого пространства для достижения к концу следующей строки кода:

cout<<vec[0];
for (int i = 1; i < N; i++) {
    cout << " " << vec[i];
}

Поиск значений в первые несколько позиций в контейнере:

cout << find(vec.begin(), vec.end(), valueToFind) - vec.begin() + 1 << endl;

С итератором доступа в качестве элемента объекта, вам нужно добавить скобки, такие как:

(*iter).begin();

титульный

заголовок

HDU - 1029 Игнатий и принцесса IV

«Хорошо, что вы не слишком плохо, эм ... Но вы не можете пройти следующий тест.» Feng5166 говорит.
«Я скажу вам нечетное число N, а затем N целых чисел. Там будет специальное число среди них, вы должны сказать мне , какие целое число является особенным , когда я расскажу вам все целые числа «. Feng5166 говорит.
«Но то , что является характерным для специального целого?» Спрашивает Игнатий.
«Целое число будет отображаться , по меньшей мере (N + 1) / 2 раз. Если вы не можете найти нужное число, я буду убивать принцессу, и вы будете мой обед, тоже. Хахаха ...»говорит feng5166.
Можете ли вы найти специальное число для Игнатия?
вход
Ввода содержит несколько тестовых примеров . Каждый тест состоит из двух строк. Первая строка состоит из нечетного числа N (1 <= N <= 999999) , которые указывают число целых чисел feng5166 расскажет наш герой. Вторая строка содержит N целых чисел. Вход прекращается по достижении конца файла.
Выходные данные
Для каждого теста, вы должны выводить только одну строку , которая содержит специальный номер , который вы нашли.
Пример ввода
5
1 2 3 3 3
11
1 1 1 1 1 5 5 5 5 5 5
7
1 1 1 1 1 1 1
Пример вывода
3
5
1

Код:

#define _crt_secure_no_warnings
#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string>
#include<cstring>
#include<vector>
#include<stdlib.h>
#include<memory.h>
using namespace std;

int main() {
	int N;
	while (scanf("%d", &N) != EOF) {
		vector<int> vec;
		for (int i = 0; i < N; i++) {
			int temp;
			cin >> temp;
			vec.push_back(temp);
		}
		sort(vec.begin(), vec.end());
		cout << vec[(N - 1) / 2] << endl;
	}
	return 0;
}

название B

HDU - 1040 As Easy As A + B

В эти дни, я имею в виду вопрос, как я могу получить проблему так легко , как A + B? Это довольно трудность сделать такую вещь. Конечно, я получил его после многих бодрствующих ночей.
Дай вам некоторые целые числа, ваша задача состоит в том, чтобы отсортировать эти числа по возрастанию (升序).
Вы должны знать , как легко проблема сейчас!
Удачи!
Входные данные
Входной содержит несколько тестовых случаев. Первая строка ввода является одно целым числом Т , которое является числом тестовых примеров. Тестовые T следовать. Каждый тест содержит целое число N (1 <= N <= 1000 количество целых чисел, подлежащих сортировке) , а затем N целые числа следуют в той же строке.
Он Гарантируется , что все целые числа в диапазоне от 32-внутр.
Выходные данные
Для каждого случая выведите результат сортировки, и одна строка один случай. Пример ввода
2
3 1 2 3
9 1 4 7 2 5 8 3 6 9
Образец Выход
1 2 3
1 2 3 4 5 6 7 8 9

Эта проблема ошибки presetation, причина для каждой строки последние больше пространства. Когда выход ноты на нем.

Код:

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string>
#include<cstring>
#include<vector>
#include<stdlib.h>
#include<memory.h>
using namespace std;

int main() {
	int T;
	cin >> T;
	while (T--) {
		int N;
		cin >> N;
		vector<int> vec;
		for (int i = 0; i < N; i++) {
			int temp;
			cin >> temp;
			vec.push_back(temp);
		}
		sort(vec.begin(), vec.end());
		for (int i = 0; i < N; i++) {
			cout << vec[i];
			if (i != N - 1) {
				cout << " ";
			}
		}
		cout << endl;
	}
	return 0;
}

название C

HDU - 1718 место

Джексон хочет знать его ранг в классе. Профессор опубликовал список номеров студенческих и знаков. Вычислить ранг Джексона в классе; то есть, если у него есть верхний знак (или привязан к верхней отметке) , его ранг 1; если у него есть второй лучший знак (или привязывается) его ранг 2, и так далее.
Входные данные
Входной состоят из нескольких тестовых случаев. Каждый случай начинается с студенческим числом Джексон, целое числом между 10000000 и 99999999. После числа студентов имеют несколько линий, каждый из которых содержит ряд студента между 10000000 и 99999999 и знаком между 0 и 100. Линями с числом студентов и знаком 0 завершает каждый тест. Есть не более 1000 студентов в классе, и каждый из них имеет уникальный номер студента.
Выход
Для каждого теста вывести линию дает звание Джексона в классе.
Пример ввода
20070101
+20070102 100
20070101 33
20070103 22
20070106 33
0 0
Пример вывода
2

Начиная непонятый предмет, ищут гнездо оценку рейтинга, не ищет джек счета является первым из нескольких высокого балла. Этот вопрос несколько наборов входных! Несколько наборов входных! Несколько наборов входных! Несколько человек (включая меня) не заметил.

Код:

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string>
#include<cstring>
#include<vector>
#include<stdlib.h>
#include<map>
using namespace std;

bool cmp(const int &a, const int &b) {
	return a > b;
}

int main() {
	int jacknum;
	while (scanf("%d", &jacknum) != EOF) {
		int jackscore;
		vector<int> vec;
		int num;
		int score;
		while (cin >> num >> score) {
			if (num == 0 && score == 0) {
				break;
			}
			if (jacknum == num) {
				jackscore = score;
			}
			vec.push_back(score);
		}
		sort(vec.begin(), vec.end(), cmp);
		cout << find(vec.begin(), vec.end(), jackscore) - vec.begin() + 1 << endl;
	}
	return 0;
}

D название

- 137C Codeforces История

Поликарп любит учиться в школе много, и он всегда прилежен о своем домашней работе. Поликарп никогда не было никаких проблем с естественными науками, как его прапрадед был великий физик Seinstein. С другой стороны, хотя, Поликарп никогда не было легкое время с history.Everybody знает, что Всемирная история включает в себя ровно п событий: я-го события продолжались от года д.в. до года включительно (би ай <би). Поликарп легко узнали даты, когда каждый из п событий начала и окончания (Поликарп унаследовал отличную память от его пра-пра-дедушку). Но учитель дал ему более сложную задачу: Polycaprus должны знать, когда все события начала и окончания, и он также должен выяснить для каждого события включает ли это еще одно событие. преподаватель Поликарп считает, что событие J включает в себя событие я, если а ^ < Гаем и би <Ь. Ваша задача проще: найти число событий, которые включены в другом случае.
Входные данные
Первая строка содержит целое число N (1 ≤ N ≤ 105) , которое представляет собой число событий. Далее п строк содержат описания исторических событий, одно событие в каждой строке. + 1 строка содержит два целых числа аи и би (1 ≤ аг <би ≤ 109) - начало и конец г-го события. Никакие два события не начинаются или заканчиваются в том же году, что А.И ≠ аи Амнистии ≠ ЛЮ, би ≠ аи би ≠ Ь для всех I, J (где я ≠ J). События даны в произвольном порядке.
Выходные данные
Вывести единственное число - ответ на problem.Examples
Input
5
1 10
2 9
3 8
4 7
5 6
Выход
4
входа
5
1 100
2 50
51 99
52 98
10 60
Выход
4
Ввод
1
1 1000000000
Выход
0
Примечание
В первом примере пятое событие содержится в четвертом. Аналогично, четвертое событие содержится в третьем, третий - во второй , а второй - в первом.
Во втором примере все события , кроме первого, содержатся в первом.
В третьем примере только одно событие, поэтому ответ 0.

начинаясь с двухтактным, независимо от того , каким образом оптимизированной реализации всегда есть контрольная точка позволяет овертайм, я думал , что причина в том , что с контейнером, не заменить формулировку контейнера и обнаружил , что контрольная точка может также уменьшить ,
Позже обнаружили слой велоспорта будет в состоянии решить эту проблему, или немного умный, я не думаю , что этот метод.

Код:

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string>
#include<cstring>
#include<vector>
#include<stdlib.h>
#include<memory.h>
#include<map>
using namespace std;

bool cmp(const pair<int, int> &a, const pair<int, int> &b) {
	return a.first < b.first;
}

int main() {
	int N;
	cin >> N;
	vector<pair<int, int>> vec;
	int a, b;
	while (N--) {
		cin >> a >> b;
		vec.push_back(pair<int, int>(a, b));
	}
	sort(vec.begin(), vec.end(), cmp);
	int count = 0;
	int maxa = (*vec.begin()).second;
	for (vector<pair<int, int>>::iterator iter = vec.begin();
		iter != vec.end(); ++iter) {
		if ((*iter).second < maxa) {
			count++;
		}
		else {
			maxa = (*iter).second;
		}
	}
	cout << count << endl;
	return 0;
}

Tucao: название D действительно моя голова не хорошо, я не ожидал, что один метод цикла. Вопрос должен быть разделен на категории D структуры рода в третьем, он сделал небольшую ошибку людьми проблемы.

рекомендация

отblog.csdn.net/GregoryHanson/article/details/86626670