Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Ülesanded mida võiks lahendada, soovitused nende lahendamiseks! märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
mine lehele 1, 2  järgmine
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
-ordi-
HV vaatleja

liitunud: 03.06.2009




sõnum 14.02.2010 22:47:10 Ülesanded mida võiks lahendada, soovitused nende lahendamiseks! vasta tsitaadiga

Olen vaikselt proovinud lahendada igasuguseid programmeerimisülesandeid.
Hetkel vaevan pead sellisega http://www.upload.ee/image/397828/Pealkirjata.jpg
Kas keegi viitsiks mõne vihje anda kuidas tuleks, võiks seda lahendada, koodi ei soovi.
Kergemad olen suht enamvähem Eesti IO ära lahendanud, aga osad on päris keerukad vähemalt minu jaoks.
Mõned on veel aga alustaks sellest.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
Deadlock
Kreisi kasutaja

liitunud: 16.07.2004




sõnum 15.02.2010 00:08:03 vasta tsitaadiga

Mina teeksin selle nii:

Kirjutaksin funktsiooni, mis annab järjestikku asuvate aialippide "põhja" pindala, ehk leiaks sisestatud aialippide põhjal visualiseerides midagi sellist:


Kuna sama funktsioon võib võtta sisendiks ka ainult ühe lipi, andes kogu lipi pindala, saan ma kasutada seda üldiselt, ning kirjutada kahekordne tsükkel, mis kontrollib kõik võimalikud järjestikku asuvad lipikombinatsioonid ära. Seega saavad arvestatud ka igasugused kahest ja ühest lipist koosnevad "pilvelõhkujad", mis pindalalt suurimad on.

Kui mingi ajapiirang ka on arvutamisel, siis ei tea, kas see just optimaalne lahendus oleks, aga vähemalt töötab...

NewScientist pakub nädalas korra lahendamist, kellel viitsimist on: http://www.newscientist.com/topic/enigma
Kommentaarid: 8 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
guest1902
Kreisi kasutaja
guest1902

liitunud: 05.11.2005




sõnum 15.02.2010 20:59:23 vasta tsitaadiga

Bluebull, kuna antud piirid pole suured, siis t55tab küll. Ajaline piir on 1s.
See ylesanne on selle 6ppeaasta lahtisest v6istlusest ja ise arvasin samuti, et nii labane algo ei l2he l2bi.
Kui piirid oleksid suuremad (nt lippide k6rgus oleks 10^9), siis tuleks midagi targemat v2lja m6elda...

_________________
assumption is the mother of all fuck ups
,,think before you print and save a ROOT::TTree''
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
-ordi-
HV vaatleja

liitunud: 03.06.2009




sõnum 15.02.2010 23:35:51 vasta tsitaadiga

Ülesanne tundub lihtsam kui arvasin, vb keerukaks osutub see elementide läbikäimine kahe tsükliga aga pmst muu ma tegin ära.

Kle Elrak oled selle nt javas ära teinud ja kas mahtus aega?
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
guest1902
Kreisi kasutaja
guest1902

liitunud: 05.11.2005




sõnum 16.02.2010 00:27:16 vasta tsitaadiga

Ma progresingi Javas (kindluse mõttes), sest c++ süntaks tundus liiga roostes, ning mahtus aega ilusti.
_________________
assumption is the mother of all fuck ups
,,think before you print and save a ROOT::TTree''
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
-ordi-
HV vaatleja

liitunud: 03.06.2009




sõnum 16.02.2010 17:32:38 vasta tsitaadiga

Muidu ma lugesin need andmed kõik massiivi ja funktsioon, mis leiab põhja pindala on samuti kirjutatud arvestades massiivi.
Aga ma ei saa ju toda funktsiooni kasutada seal kahekordses tsüklis, sest see leiab mul kõige lühema lipi ja korrutab selle N lippide arvuga.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
Deadlock
Kreisi kasutaja

liitunud: 16.07.2004




sõnum 17.02.2010 15:42:57 vasta tsitaadiga

tsitaat:
Aga ma ei saa ju toda funktsiooni kasutada seal kahekordses tsüklis, sest see leiab mul kõige lühema lipi ja korrutab selle N lippide arvuga.


Vastav funktsioon peaks vastu võtma 1 kuni N lippi ja korrutamama lühima lipi sisestatud lippide arvuga. Saadud tulemust tuleb kontrollida eelmise parima tulemusega ja see vajadusel asendada.


Oletame, et meil on lipid: ABCDE
kahekordne tsükkel peaks sisestama funktsiooni lipid nii:

1) A
2) AB
3) ABC
4) ABCD
5) ABCDE
6) B
7) BC
8) BCD
9) BCDE
10) C
11) CD
12) CDE
13) D
14) DE
15) E

selle saavutamiseks määrad sisemise tsükli "stardinumbriks" välimise tsükli hetke numbri, ehk for(j = i; j < N; j++)
Kommentaarid: 8 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
guest1902
Kreisi kasutaja
guest1902

liitunud: 05.11.2005




sõnum 17.02.2010 18:29:24 vasta tsitaadiga

Ma vist tegin niimoodi, et leidsin suurima ja väikseima lipi kõrguse (andmeid sisse lugedes) ja siis välimine tsükkel käib läbi väärtused minimaalsest kõrgusest maksimaalseni, enne sisemist tsüklit loob mingi loenduri, sisemises tsüklis käib läbi massiivi iga elemendi ning võrdleb seda jooksva lipi kõrgusega; kui on suurem-võrdne, siis suurendab loendurit; kui mitte, siis omistab vastusele loenduri ja jooksva lipi kõrguse korrutise juhul, kui saadud korrutis on vastusest suurem. Pole just teab mis efektiivne, kuid seda annaks lippide suure arvu korral optimeerida küll.

e: lisan oma versiooni
Spoiler Spoiler Spoiler

_________________
assumption is the mother of all fuck ups
,,think before you print and save a ROOT::TTree''


viimati muutis guest1902 18.02.2010 00:50:37, muudetud 1 kord
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
-ordi-
HV vaatleja

liitunud: 03.06.2009




sõnum 17.02.2010 18:57:18 vasta tsitaadiga

Millegi pärast on mul loll komme kõik asjad väga raskesti ära lahendada icon_lol.gif .
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002




sõnum 17.02.2010 19:50:15 vasta tsitaadiga

Elrak, proovi oma koodi sellise sisendiga:

8
1 5 5 4 5 5 3 1


Ma eeldaks väljundiks 20. Su kood annab minuarust aga väljundiks 8 (kui ma õigesti selle läbi närisin)

_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
-ordi-
HV vaatleja

liitunud: 03.06.2009




sõnum 17.02.2010 20:33:03 vasta tsitaadiga

Testisin ka seda koodi, töötab suht ainult mõne sisendiga, nii lihtne see lahendus ikka ei ole.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
DoS
HV veteran
DoS

liitunud: 19.08.2002




sõnum 17.02.2010 21:00:28 vasta tsitaadiga

põhimõtteliselt tal see töötab, lihtsalt vaja if(result<counter*i) result=counter*i; kopeerida ka sisemise tsükli else'i (enne counter=0)
teeks veel nii, et ei kontrollita olematuid lipi kõrgusi läbi, oleks ilmselt päris hea lahendus kuigi tundub, et antud ülesande püstitusel eriti vahet ei ole, mahub aega igat pidi
Kommentaarid: 50 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 47
tagasi üles
vaata kasutaja infot saada privaatsõnum
mrkaarel
HV vaatleja

liitunud: 08.07.2008




sõnum 17.02.2010 22:22:50 vasta tsitaadiga

Kahekordsetele tsüklitele vahelduseks üks rekursiivne lahendus ka. Funktsioon saab ette aialippide massiivi, leiab madalaima lipi, arvutab selle järgi pindala ja kutsub sama funktsiooni välja madalaimast lipist vasakule ja paremale poole jäävate lippide jaoks. Failist input-output osa ei tundunud erutav, see jäi välja icon_smile.gif


using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        List<int> fence = new List<int>() { 1, 5, 5, 4, 5, 5, 3, 1 };
        Console.WriteLine(ReturnMaxArea(fence));
    }

    public static int ReturnMaxArea(List<int> fence)
    {
        if (fence.Count == 0) {
            return 0;
        }

        int lowestHeight = Int32.MaxValue, lowestHeightIndex = -1;
        for (int i = 0; i < fence.Count; i++) {
            if (fence[i] < lowestHeight) {
                lowestHeight = fence[i];
                lowestHeightIndex = i;
            }
        }

        int currentBaseArea = fence.Count * lowestHeight;
        List<int> leftFence = fence.GetRange(0, lowestHeightIndex);
        List<int> rightFence = fence.GetRange(lowestHeightIndex + 1, fence.Count - lowestHeightIndex - 1);

        return Math.Max(currentBaseArea, Math.Max(ReturnMaxArea(leftFence), ReturnMaxArea(rightFence)));
    }
}

Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
Deadlock
Kreisi kasutaja

liitunud: 16.07.2004




sõnum 17.02.2010 23:11:16 vasta tsitaadiga

Proovisin ka ära, kui kõik juba proovivad:

Spoiler Spoiler Spoiler
Kommentaarid: 8 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
-ordi-
HV vaatleja

liitunud: 03.06.2009




sõnum 17.02.2010 23:58:25 vasta tsitaadiga

No võtame järgmise ülesande?

kellelgi midagi välja pakkuda ei ole?
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
guest1902
Kreisi kasutaja
guest1902

liitunud: 05.11.2005




sõnum 18.02.2010 01:03:15 vasta tsitaadiga

Eelmisest ülesandest nii palju, et tookord ma suutsin ikka max p kätte saada, sest ma testisin igasuguste kombinatsioonidega. Nüüd peaks kood korras olema.
http://www.ttkool.ut.ee/comp/balt/boi96d1e.htm
Esimene ülesanne näris kunagi täiega, kuid vahepeal on ununenud. Nv proovin uuesti. Vihjeks pidavat olema kahendotsing...

_________________
assumption is the mother of all fuck ups
,,think before you print and save a ROOT::TTree''
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
-ordi-
HV vaatleja

liitunud: 03.06.2009




sõnum 18.02.2010 20:54:37 vasta tsitaadiga

Elrak kirjutas:
Eelmisest ülesandest nii palju, et tookord ma suutsin ikka max p kätte saada, sest ma testisin igasuguste kombinatsioonidega. Nüüd peaks kood korras olema.
http://www.ttkool.ut.ee/comp/balt/boi96d1e.htm
Esimene ülesanne näris kunagi täiega, kuid vahepeal on ununenud. Nv proovin uuesti. Vihjeks pidavat olema kahendotsing...


Ega sa sassi ei ajanud? Mulle tundub et esimeses ülesandes ei ole kahendotsinguga midagi teha, teises on küll.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
guest1902
Kreisi kasutaja
guest1902

liitunud: 05.11.2005




sõnum 18.02.2010 22:19:43 vasta tsitaadiga

-ordi- kirjutas:
Elrak kirjutas:
Eelmisest ülesandest nii palju, et tookord ma suutsin ikka max p kätte saada, sest ma testisin igasuguste kombinatsioonidega. Nüüd peaks kood korras olema.
http://www.ttkool.ut.ee/comp/balt/boi96d1e.htm
Esimene ülesanne näris kunagi täiega, kuid vahepeal on ununenud. Nv proovin uuesti. Vihjeks pidavat olema kahendotsing...


Ega sa sassi ei ajanud? Mulle tundub et esimeses ülesandes ei ole kahendotsinguga midagi teha, teises on küll.

Ei ajanud... Selles asja probleem ongi.

_________________
assumption is the mother of all fuck ups
,,think before you print and save a ROOT::TTree''
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
virus152
HV vaatleja
virus152

liitunud: 05.03.2009




sõnum 20.02.2010 18:34:02 vasta tsitaadiga

See ülesanne oli paar aastat tagasi valikvõistlusel või õppesessioonil kasutusel. Näidislahendus oli mäletamist mööda realiseeritud nii, et kattuva osa sisse üritati lihtsalt panna järjest väiksemaid ruute seni kuni kasutatava ruudu pindala oli mingi järk allpool nõutud täpsust.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
webromps
HV kasutaja

liitunud: 13.06.2005



Autoriseeritud ID-kaardiga

sõnum 27.02.2010 16:10:14 vasta tsitaadiga

http://uva.onlinejudge.org/

Sellel aadressil on üsna palju ülesandeid.
Kommentaarid: 6 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 4
tagasi üles
vaata kasutaja infot saada privaatsõnum
virus152
HV vaatleja
virus152

liitunud: 05.03.2009




sõnum 27.02.2010 21:12:24 vasta tsitaadiga

Hinnavaatlejate kogutud teosed https://foorum.hinnavaatlus.ee/viewtopic.php?t=63007

Lisasin lõppu mõned lehed, mida minu meelest seal ei olnud (USACO't lihtsalt täiendasin).
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
-ordi-
HV vaatleja

liitunud: 03.06.2009




sõnum 27.02.2010 23:54:10 vasta tsitaadiga

virus152 kirjutas:
Hinnavaatlejate kogutud teosed https://foorum.hinnavaatlus.ee/viewtopic.php?t=63007

Lisasin lõppu mõned lehed, mida minu meelest seal ei olnud (USACO't lihtsalt täiendasin).


Neid lehti kus saab lahendada ülesandeid on väga palju, http://uva.onlinejudge.org/ siin on ühed keerukamad, vähemalt tundub nii.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
guest1902
Kreisi kasutaja
guest1902

liitunud: 05.11.2005




sõnum 13.09.2010 06:49:29 vasta tsitaadiga

Topic resurrection!!1
kk

Selline ülesanne siis (väike abstraheerimine icon_razz.gif), et on antud k-pikkune arv alusel n (k<=n), kusjuures iga number esineb selles arvus ühe korra. Leida kõik sellised arvud, milles esimesest i numbrist moodustatud arv jagub arvuga i.

Lihtsuse mõttes icon_lol.gif olgu esialgu k=n=10.*
Permutatsioonid 10 puhul ei tohiks erilist raskust valmistada (paberi pealgi lahendatav, kuid võtab rohkem aega kui koodimine)... küll jääb mulle mõistatuseks igas ülejäänud arvusüsteemis permutatsioonide genereerimine (ja omakorda jaguvuse kontrollimine), et asi võtaks mõistuse piires aega. Jäägi leidmine mitte-kümnendsüsteemi arvudega pole just asi, millega tegelenud.

* esialgses ülesandes oligi antud just see variant ning asi lahenes (veits bruutfoorsides) valutult. Et ülesanne veidike arusaadavam oleks, siis nt 1234567890 ei sobi, sest 1234%4==2. 10_P_10 puhul leidub 1 vastus.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
troglodyte
Kreisi kasutaja
troglodyte

liitunud: 09.08.2002




sõnum 13.09.2010 13:43:14 vasta tsitaadiga

Jäägi leidmiseks teisendad arvu kümnendsüsteemi.
_________________
ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn
Kommentaarid: 34 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 34
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mark11
HV vaatleja

liitunud: 28.01.2006




sõnum 18.09.2010 09:49:42 vasta tsitaadiga

oletame, et I on paaris arv, siis me ei pea genereerima paarituid permutatsioone, sest paaritu % paaris > 0
kui me nüüd vaatame mitu võimalust on sellist, et paarisarv on viimane, siis tuleb meil[kui ma nüüd väga võssa ei pannud][/ot]
C(9, 5)*5! * C(5, 4) * 4! = 1814400

mis põhimõtteliselt on ju teatavasti 10!/2
ehk siis juba on näha pool võitu
sama asi kehtib teiste asjade kohta ka, näiteks 9'ga jaguvad arvud ainult siis kui ristsumma jagub 9'ga.. seega kui vahet pole millise arvu ristsumma ei jagu 9'ga siis vastus on 0 näiteks
Kommentaarid: 1 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 1
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Ülesanded mida võiks lahendada, soovitused nende lahendamiseks! mine lehele 1, 2  järgmine
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.