Здравствуйте. Дорешиваю задачи с полуфинала республиканской олимпиады, но одну задачу никак не могу решить. Подскажите пожалуйста, как решить эту задачу.
№ | Пользователь | Рейтинг |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3823 |
3 | Benq | 3738 |
4 | Radewoosh | 3633 |
5 | jqdai0815 | 3620 |
6 | orzdevinwang | 3529 |
7 | ecnerwala | 3446 |
8 | Um_nik | 3396 |
9 | ksun48 | 3390 |
10 | gamegame | 3386 |
Страны | Города | Организации | Всё → |
№ | Пользователь | Вклад |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 157 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
9 | nor | 153 |
Здравствуйте. Дорешиваю задачи с полуфинала республиканской олимпиады, но одну задачу никак не могу решить. Подскажите пожалуйста, как решить эту задачу.
Hello. I solve DP problems. But I can't solve this problem. Please help me.
Здравствуйте. Долго думал над этой задачей, но решения не придумал. Подскажите, пожалуйста, как можно решить эту задачу.
Здравствуйте. Я решал задачу 615E - Шестиугольники. И столкнулся с такой проблемой. При отправке кода 15331715, проходит только первый тест, а при отправке кода 15331768, проходят все тесты. Единственное их отличие в том, что в первом задача решается в функциях, а во втором всё в main(). Причём первый код у меня на компьютере работает верно, но при запуске в Codeforces выдаёт всё время один и тот же ответ.
Здравствуйте, братцы. Подскажите пожалуйста хорошему человеку, как решить Задачу J из http://neerc.ifmo.ru/school/russia-team/today/problems-internet.pdf. 3 дня думаю ничего в голову не приходит.
Здравствуйте. Помогите пожалуйста решить эту задачу.
Входные данные Результат работы
3
2 6 3
1 4 1
3 4 1 3
4
1 2 1
3 1 1
2 4 2
3 7 1 2
Я попробовал полным перебором, но не получается, ничего другого в голову не приходит:
#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define uLL unsigned long long
#define pb push_back
#define PI 3.14159265359
const double EPS = 1e-9;
inline double inter(double x1, double y1,double x2, double y2,double x3, double y3)
{
return (x2-x1) * (y3-y1) - (y2-y1) * (x3-x1);
}
inline bool intersect_1(double a, double b, double c, double d)
{
if(a>b) swap(a, b);
if(c>d) swap(c, d);
return max(a, c) <= min(b, d);
}
inline bool intersect(double x1, double y1,double x2, double y2,double x3, double y3, double x4, double y4)
{
return intersect_1(x1, x2, x3, x4)
&& intersect_1(y1, y2, y3, y4)
&& inter(x1, y1, x2, y2, x3, y3) * inter(x1, y1, x2, y2, x4, y4) <= 0 // ! * !
&& inter(x3, y3, x4, y4, x2, y2) * inter(x3, y3, x4, y4, x1, y1) <= 0; // ! * !
}
struct Sqr
{
struct
{
double x, y;
} P1;
struct
{
double x, y;
} P2;
struct
{
double x, y;
} P3;
};
int main()
{
int n;
int amount = 0;
cin >> n;
Sqr *S = new Sqr[n+2];
for(int i = 1; i <= n; ++i)
{
double x, y, l;
cin >> x >> y >> l;
S[i].P1.x = x;
S[i].P1.y = y+l;
S[i].P2.x = x;
S[i].P2.y = y;
S[i].P3.x = x+l;
S[i].P3.y = y;
/*cout << S[i].P1.x << " " << S[i].P1.y << endl;
cout << S[i].P2.x << " " << S[i].P2.y << endl;
cout << S[i].P3.x << " " << S[i].P3.y << endl;*/
}
for(int i = 1; i <= n; ++i)
{
bool q = 0;
for(double y = S[i].P1.y; y >= S[i].P2.y; y -= 0.5)
{
q = 0;
for(int j = 1; j <= n; ++j)
{
if(i != j)
{
if(intersect(S[i].P1.x, y, 0.0, 0.0, S[j].P1.x, S[j].P1.y, S[j].P2.x, S[j].P2.y) == 1)
{
q = 1;
}
if(intersect(S[i].P1.x, y, 0.0, 0.0, S[j].P2.x, S[j].P2.y, S[j].P3.x, S[j].P3.y) == 1)
{
q = 1;
}
}
}
if(q == 0)
{
//cout << "1 i = " << i << endl;
++amount;
break;
}
}
if(q == 0)
continue;
for(double x = S[i].P2.x; x <= S[i].P3.x; x += 0.5)
{
q = 0;
for(int j = 1; j <= n; ++j)
{
if(i != j)
{
if(intersect(x, S[i].P2.y, 0.0, 0.0, S[j].P1.x, S[j].P1.y, S[j].P2.x, S[j].P2.y) == 1)
{
q = 1;
}
if(intersect(x, S[i].P2.y, 0.0, 0.0, S[j].P2.x, S[j].P2.y, S[j].P3.x, S[j].P3.y) == 1)
{
q = 1;
}
}
}
if(q == 0)
{
//cout << "2 i = " << i << endl;
++amount;
break;
}
}
}
cout << amount << endl;
return 0;
}
Здравствуйте. Как решить эту задачу ?
В стране Берляндии очень развит общественный транспорт. Проезд в нем бесплатный, но при этом каждому пассажиру при входе выдают билетик с уникальным номером. Особенно ценятся так называемые счастливые билетики. Билетик называется счастливым, если сумма цифр на четных позициях в его номере равна сумме цифр на нечетных позициях. Васе известно, что билеты выдаются подряд в порядке возрастания номеров. В очередной раз войдя в автобус Вася получил свой очередной билет и тут ему стало интересно, какой существует минимальный счастливый билетик с номером, меньшим номера билетика Васи. Помогите Васе узнать ответ на этот вопрос.
Формат входных данных
В единственной строке задан номер билетика Васи — натуральное число, имеющее в своей десятичной записи не более 100 цифр.
Формат результата
Выведите минимальный номер счастливого билетика, который больше номера билетика Васи.
Здравствуйте. Решаю задачу про точку пересечения прямых(http://www.e-olimp.com/problems/2143), используя формулы X = -(C1*B2-C2*B1)/(A1*B2-A2*B1), Y=(A2*C1-A1*C2)/(A1*B2-A2*B1). Бьюсь над этой задачей второй день, но не пойму, почему не проходят некоторые тесты. Помогите пожалуйста. http://www.e-olimp.com/solutions/1889546
#include <bits/stdc++.h>
using namespace std;
struct Line {
double a, b, c;
};
Line s;
Line d;
double x, y;
void inter_point() {
x = (d.c*s.b — s.c*d.b) / (s.a*d.b — d.a*s.b);
y = (s.c*d.a — d.c*s.a) / (s.a*d.b — d.a*s.b);
}
int main() {
cout.setf(ios::fixed);
cout.precision(2);
cin >> s.a >> s.b >> s.c;
cin >> d.a >> d.b >> d.c;
inter_point();
cout << x << ' ' << y << endl;
return 0;
}
Дается массив целых чисел. Отсортируйте массив по возрастанию, используя не оптимизированный алгоритм сортировки вставкой . Первая строка содержит число n, количество элементов в массиве. Вторая строка содержит массив. Третья строка содержит чиcло m, номер итерации которую мы должны.
Итерацией считается действительной — если произошли изменения в массиве.
Начальное состояние массива — итерацией с нулевым индексом.
В единственной строке — вывести значения элементов массива на m-ой итерации сортировки.
Название |
---|