Блог пользователя Karaev_Marik

Автор Karaev_Marik, история, 9 лет назад, По-русски

Привет всем! Решаю вот эту вот задачу ссылка Придумал только вот какое решение. Считаем dp[i]-максимальная выручка за за первые i дней. Переход dp[i]=max(0<=j<=i: dp[j]+c[i]*(pref[i]-pref[j])), то есть перебираем когда в последний раз нам выгодно рубить дерево и выбираем оптимальный. Здесь pref[k]-на сколько вырастет бамбук за первые k дней. Но, это О(n^2). Как решить эту задачу за O(n)?

Полный текст и комментарии »

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

Автор Karaev_Marik, история, 9 лет назад, По-русски

Привет CF! Предлагаю здесь обсудить задачи первого контеста "Стек+персистентный". Кто может объяснить почему у меня по В "Ошибка выполнения"? Вот код :(http://pastebin.com/NyteTN2x) Задачи здесь (http://www.e-olymp.com/ru/contests/6473)

Полный текст и комментарии »

  • Проголосовать: нравится
  • -7
  • Проголосовать: не нравится

Автор Karaev_Marik, история, 9 лет назад, По-русски

Привет Codeforces! Я попытался реализовать дерево отрезков для минимума... Вроде все компилируется, но при запуске программа аварийно завершается (например, при таком тесте n=6, l=3,r=6, a{1,2,3,4,5,6,7,8,9,10})... Помогите разобраться в чем проблема?... Ниже мой код

#include <fstream>
#include <algorithm>

using namespace std;

ifstream fin("input.txt");
ofstream fout("output.txt");

const int INF=(int)10e4;
const int Nmax=1000;
int a[Nmax],t[4*Nmax];
int n;


void build(int v,int l, int r){
	
	if(l==r)
		t[v]=a[l];
	else{
		
		int m=(l+r)/2;
		build(v*2,l,m);
		build(v*2+1,m+1,r);
		t[v]=min(t[2*v],t[2*v+1]);
	}	
}


int getmin(int v,int l,int r,int i,int j){
	
	if(l>r)
		return INF;
	if(l==i && j==r)
		return t[v];
	int m=(l+r)/2;
	int m1=getmin(2*v,l,m,i,min(j,m));
	int m2=getmin(2*v+1,m+1,r,max(m+1,i),j);
	return min(m1,m2);		
}

int main(){
	
	int l,r;
	fin >> n >> l >> r;
	for(int i=0;i<n;++i)
		fin >> a[i];
	
	build(1,0,n-1);
	
	fout << getmin(1,0,n-1,l,r);
	return 0;
	
}

Полный текст и комментарии »

  • Проголосовать: нравится
  • +3
  • Проголосовать: не нравится

Автор Karaev_Marik, история, 9 лет назад, По-русски

Привет Codeforces! У меня проблема вот какая... решаю тренировку, а система говорит WA на первом же тесте, задача очень простая первая задача с тренировки СпГУ Язык С ((http://mirror.codeforces.com/gym/100092)). Вот мой код 12895954... Помогите с проблемой...

Полный текст и комментарии »

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится