Задача. Даны целые числа [latex]a_{1},\ldots, a_{n}[/latex]. Наименьший член последовательности [latex]a_{1}, \ldots, a_{n}[/latex] заменить целой частью среднего арифметического всех членов, остальные члены оставить без изменения. Если в последовательности несколько членов со значением min [latex](a_{1}, \ldots, a_{n})[/latex], то заменить последний по порядку. Тесты Test Input Output 1 2 4 8 16 2 4 2 4 8 16 … Continue reading
A300
There is a sequence of real numbers [latex]a_1, a_2, \ldots[/latex](read to the end of the input stream). You need to get the sequence of numbers [latex]b_1, \ldots, b_{10}[/latex], where [latex]b_i[/latex] is the sum of those members of input sequence, that belong left-open interval [latex](i — 1, i](i = 1, \ldots, 10)[/latex]. If the interval doesn’t contain … Continue reading
e-olymp 1073. Статическая сложность
Условие Задача взята с сайта e-olymp, полное условие можно прочитать здесь. Входные данные В первой строке находится целое число [latex]k[/latex] — число программ во входном файле. Затем идут [latex]k[/latex] программ, удовлетворяющих приведенной грамматике. Пробелы и переводы строк могут встречаться везде в программе, но не в ключевых словах [latex]BEGIN[/latex], [latex]END[/latex], [latex]LOOP[/latex] и [latex]OP[/latex], нет их и в целых числах. … Continue reading
e-olymp 1072. Химические реакции
Условие Задача взята с сайта e-olymp, полное условие можно прочитать здесь. Входные данные В первой строке находится формула — левая часть уравнения, во второй- одно число [latex]N (1 \leq N \leq 10)[/latex] — количество рассматриваемых правых частей, в каждой из последующих [latex]N[/latex] строк — одна формула — предполагаемая правая часть уравнения. Длина формулы не превосходит … Continue reading
e-olymp 1077. Java против C++
Задача. Сторонники языков Java и C++ часто спорят о том, какой язык лучше для решения олимпиадных задач. Одни говорят, что в Java есть масса полезных библиотек для работы со строками, хорошо реализованы механизмы чтения и вывода данных, а так же радует встроенные возможности для реализации длинной арифметики. С другой стороны, С++ является классическим языком, скорость выполнения … Continue reading
e-olymp 2165. Лишние пробелы
Дана строка. Напишите программу, которая удалит из этой строки все лишние пробелы. Пробел будем считать лишним, если: он находится в самом начале строки, до самого первого слова; он находится в конце строки, после самого последнего слова; несколько пробелов расположены между двумя словами (проще говоря, если слова разделены более чем одним пробелом, тогда все пробелы кроме … Continue reading
Ю3.25
Задача. Для заданных [latex]m[/latex] и [latex]n[/latex] вычислить число сочетаний [latex]C_m^n[/latex] непосредственно: [latex]C_m^n=\frac{m!}{n!(m-n)!}[/latex] и по рекуррентным формулам: • [latex]C_m^n=\frac{m-n+1}{n}\cdot C_m^{n-1}, C_m^1=m;[/latex] • [latex]C_m^n=C_{m-1}^{n-1}+C_{m-1}^n;C_m^1=m,C_m^m=1.[/latex] Сравнить время вычислений(или число операций) по каждой формуле. Тесты: [latex]m[/latex] [latex]n[/latex] [latex]C_m^n[/latex] Комментарий 122 12 По первой формуле равно: 1.29803e+16 По второй формуле равно: 1.29803e+16 По третьей формуле равно: 12980291311103116 Первая формула сработала за(в милисек):0.056 Вторая формула … Continue reading
А808а
Задача. Дан текст. Группы символов, разделенные пробелами(одним или несколькими) и не содержащие пробелов внутри себя, будем называть, как и прежде, словами. Для каждого из слов указать, сколько раз оно встречается среди всех слов, образованных символами данного текста. Тесты Input Output Комментарий 123 321 1441 123 456 831 1441 123 — 2 1441 -2 321 — … Continue reading
MLoop 9
Условие Вычислите с точностью [latex]\varepsilon[/latex] значение функции [latex]f\left( x \right) = \text{sh}x[/latex]. При вычислениях допустимо использовать только арифметические операции. Входные данные В одной строке задано два числа [latex]x[/latex] и [latex]E[/latex]. Выходные данные В одной строке вывести значение функции [latex]f\left( x \right) = \text{sh}x[/latex] и [latex]\text{sinh}x[/latex] (для проверки). [latex]\text{sh} \left( x \right) = x — \frac … Continue reading
MLoops 18
Условие Найдите закономерность и напишите программу, которая выводит аналогичную таблицу для любых чисел [latex]n > 0[/latex] (количество столбцов) и [latex]m > 0[/latex] (количество строк). 1123581321345589144233377 1235813213455891442333776 2358132134558914423337761 3581321345589144233377610 5813213455891442333776109 Входные данные В одной строке задано два числа [latex]n[/latex] и [latex]m[/latex]. Выходные данные Вывести таблицу размерностью [latex]n\times m[/latex]. Тесты Входные данные Выходные данные 1 1 1 … Continue reading
А57в
Задача Дано действительное число [latex] a [/latex] . Вычислить [latex]f\left ( a \right )[/latex], если [latex]f\left ( x \right )=\left\{\begin{matrix} 0, x\leq 0 \\ x, 0< x\leq 1\\ x^{4}, x> 1 \end{matrix}\right.[/latex]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <iostream> #include <cmath> using namespace std; int main() { int x; cin >> x; if (x <= 0){ cout << 0; } if (x > 0 && x <=1){ cout << x; } if (x > 1){ cout << pow(x,4); } return 0; } |
Вводим действительное число [latex]x[/latex]. Если число меньше 0, то программа выводит 0. Если в промежутке от 0 до 1 включительно, то выводит … Continue reading
MLoop7
Задача Вычислите с точностью значение функции . При вычислениях допустимо использовать только арифметические операции. Решение Функцию [latex]f(x)=\tan x [/latex] можно представить в виде: [latex]f(x)=\frac{\sin x}{\cos x}[/latex] (по свойствам тангенса). Поэтому будем раскладывать в ряд две функции: [latex]\sin x[/latex] и [latex]\cos x[/latex]. Для решения задачи необходимо воспользоваться формулой Тейлора с опорной точкой (ряд Маклорена). Для функции [latex]f(x)=\sin x[/latex] она … Continue reading
MLoop 18
Вычислите с точностью [latex]\varepsilon[/latex] cумму ряда [latex]\sum\limits_{i=1}^{\infty}{\frac{2^i}{i!}}[/latex] Тесты Точность Сумма 0.00001 6.38905 Алгоритм решения Сначала находим отношение двух соседних членов ряда. Это [latex]2/(i+1)[/latex]. Дальше в цикле for прибавляем значение очередного элемента к переменной [latex]sum[/latex] до тех пор, пока очередной элемент не станет меньше заданной точности. Значение [latex]sum[/latex] равно двум, так как при [latex]i=1[/latex] значение суммы … Continue reading
e-olymp 1080. Анаграмматическое расстояние
Условия задачи Два слова называются анаграмматически одинаковыми, если из букв одного слова можно получить другое слово. Например, occurs является анаграммой для слова succor; и наоборот, dear не является анаграммой слова dared (так как буква d встречается дважды в dared, и только один раз в dear). Наиболее известной английской анаграммой являются слова dog и god. Анаграмматическим … Continue reading
Обратная польская запись
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
// Символы во входном потоке следует вводить через пробел. import java.util.*; import java.lang.*; import java.io.*; class Ideone{ public static void main (String[] args) throws java.lang.Exception{ try{ BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String line; String a1=""; int st_len=0; Stack<String> st = new Stack(); while( (line = reader.readLine()) != null){ String[] a = line.split(" "); for(int i = 0 ; i < a.length ; i++){ if(!a[i].equals("+") && !a[i].equals("-") && !a[i].equals("*") && !a[i].equals("/") && !a[i].equals("(") && !a[i].equals(")")){ a1+=a[i]; } else{ if((a[i].equals("+") || a[i].equals("-")) && st_len>0){ for(int j=0; j<2;j++){ if(st_len>0){ if(!st.peek().equals("(")){ a1+=st.pop(); st_len--; } } } } if((a[i].equals("*") || a[i].equals("/")) && st_len>0){ for(int j=0; j<1;j++){ if(!st.peek().equals("(") && !st.peek().equals("+") && !st.peek().equals("-")){ a1+=st.pop(); st_len--; } } } if(a[i].equals(")") && st_len>0){ for(int j=0; j<=st_len+2;j++){ if(!st.peek().equals("(")){ a1+=st.pop(); st_len--; } } if(st_len!=0){ a1+=st.pop(); st_len--; } } st.push(a[i]); st_len++; } } for(int i = 0 ; i < st_len ; i++){ a1+=st.pop(); } for(int i = 0 ; i < a1.length() ; i++){ if(a1.charAt(i)!='(' && a1.charAt(i)!=')') System.out.print(a1.charAt(i)+" "); } } }catch(IOException ex){ System.err.println("Eror"); } } } |
Алгоритм: Пока строка содержит символы для чтения, читаем очередной символ. Далее рассматриваются варианты: 1) Если символ не является символом функции или скобкой, добавляем его к выходной строке. 2) Если встретили символ функции, помещаем его в стек. Если встретили символ функции и при этом стек не пустой, выталкиваем в выходную строку все символы функции, … Continue reading
Mloop 21
Задача Вычислить с точностью [latex]\varepsilon [/latex] сумму ряда [latex]\sum _{i=1}^{\infty }{\frac{i}{fib(i)}}[/latex] Входные данные Точность [latex]\varepsilon [/latex]. Выходные данные Сумма ряда. Тесты № Точность [latex]\varepsilon [/latex] Сумма ряда Количество членов 1 1 3 2 2 0.5 8.502 8 3 0.1 9.156 12 4 0.01 9.307 18 Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include <iostream> using namespace std; int main() { double fib1=1,fib2=1,fib3,sum=3,E,a=1; //задаем переменные int k=2; cin>>E; //вводим точность, с которой будут происходить вычисления //если точность равна 1 то сумма последовательности if(E==2 || E==1)cout<<2<<endl<<3; //если точность равна 1 или 2 по сумма будет равнна сумме двух первых членов последовательности else if(E<1){ for(int i=3;a>=E;i++){ //задаем цикл:пока следующее слагаемое больше точности fib3=fib1+fib2; a=i/fib3; //слагаемое sum+=a; fib1=fib2; fib2=fib3; //k++; //считаем количество слагаемых, для того чтобы потом проверить результат } //cout<<k<<endl; cout<<sum; } return 0; } |
Решение Предлагаю следующее решение. Вычисляем первые два … Continue reading
e-olymp 6. Путёвки
Постановка задачи e-olymp 6. Путёвки Туристическая фирма не успела из-за больших морозов продать [latex]n[/latex] ([latex]n < 15[/latex]) путёвок на горнолыжные базы, срок действия которых уже наступил. С целью уменьшения убытков, было решено с 1 февраля все такие путёвки, которым осталось [latex]d_k[/latex] ([latex]d_k \le 30[/latex]) дней, продавать по номинальной стоимости – по [latex]c_k[/latex] ([latex]c_k \le 100[/latex]) … Continue reading
MLoop14
Задача Вычислите с точностью значение функции . При вычислениях допустимо использовать только арифметические операции. Тесты Аргумент функции Точность Результат программы Результат сайта wolframalpha 1,6 0,000001 -0,029212 -0.0292120 0,5 0,001 1,83 1,83049 2 0,00001 -0,45766 -0,45765155…. -0,4 0,0001 -2,3652 -2,36522 -1 0,0001 -0,6421 -0,64209261… Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
#include <iostream> using namespace std; long double f(long double s) //модуль числа { if (s<0) s=-s; return s; } long double cotan (long double x, long double e) { long double sin=x, cos=1, cotan=0, a=1; int n=2; while (f(cos/sin-cotan)>e) { cotan = cos/sin; a*=-x*x/((n-1)*n); cos+= a; sin+= a*x/(n+1); n+=2; } cotan = cos/sin; return cotan; } int main() { long double x,e,c; cin>>x>>e; c = cotan(x,e); int n = 0; x = c; while (f(x)>e) { x = x/10; n++; } cout.precision(n); cout<<c; return 0; } |
Решение Наиболее простым решением данной задачи оказалось рассмотреть … Continue reading
e-olymp 1309. Блоки строки
Условие задачи Блоком строки S в позиции i назовём наибольшую подстроку S, которая начинается в позиции i и совпадает с префиксом S. Длину блока в позиции 0 считать равной нулю. Вычислить длины блоков строки S для всех позиций. Входные данные Единственная строка S (|S| ≤ 106). Выходные данные В одной строке вывести длины блоков строки … Continue reading
e-olymp 2459. Юбилей Винни-Пуха
Условие задачи Вот и наступил долгожданный Юбилей Винни-Пуха. В волшебный лес на праздник собралось множество гостей. В том числе Винни-Пух пригласил к себе друзей из других галактик. К сожалению, когда он посылал приглашения, он совсем забыл, что на планете, где живут его друзья инопланетяне, все читают не слева направо, а справа налево. Винни-Пух понимает, что … Continue reading
Для отправки комментария необходимо войти на сайт.