Sei sulla pagina 1di 23

Resources for WebD 

 
This is a resourceful doc for aspiring web developers and those looking to sharpen up their 
skills alike. 
 
For frontend developers looking to design landing pages, user interfaces and user 
experiences, these resources will come in handy- 
 
● CodeCademy: ​https://www.codecademy.com/ 
● Mozilla Developer Network: ​https://developer.mozilla.org/en-US/ 
● TutorialsPoint React: ​https://www.tutorialspoint.com/reactjs/ 
 
For backend developers looking to enhance the user’s experience with authentication, 
processing data and databases- 
 
● TutorialsPoint PHP: ​https://www.tutorialspoint.com/php/ 
● W3schools SQL: ​https://www.w3schools.com/sql/ 
● W3schools Node.js: ​https://www.w3schools.com/nodejs 
● MongoDB Documentation: ​https://docs.mongodb.com/ 
 
Lastly, if you want to dive deeper into the discipline, the best thing to do is learn the basics 
of Linux and the Bash terminal. Here are some resources  
 

   
Resources for Design 
 
Design consists of designing everything from logos, posters, infographics, banners, UI design 
and mockups for websites and apps, to animations and interactions.  
 
There are several programs you can use for graphic design. Adobe Photoshop and Adobe 
Illustrator are two of the most popular ones, so it is recommended that you learn either one 
or both of these. You might also find Sketch (on Mac) and Affinity Designer useful. 
 
Get started with the basics: 
● Introduction to Photoshop 
● Introduction to Illustrator 
  
Here are two great follow-along video courses: 
● Illustrator 
● Photoshop 
 
 

Start designing 
Good design comes with practice. It is okay to copy and recreate designs when you’re 
learning. Don’t worry about being original – that will come later, once you are more 
comfortable the basics. When you learn a musical instrument, you learn how to play other 
people’s songs before composing your own. Same goes for design. 
When you find a good design, try and recreate it. Watch tutorials if you find something you 
want to replicate. You will learn best by actually making and designing stuff.  
 
● YouTube​ is a great place to look for tutorials.  
● Photoshop Tutorials 
● Illustrator Tutorials 
 

Design inspiration  
Blogs and other sites are a great way to get inspired, browse beautiful designs, keep up with 
trends and maybe even create your own portfolio. Here’s a list of places to get you started: 
 
● Dribbble  
● Behance  
● This​ blog 
 
 

Fonts and colours 


Nobody wants to look at a black background with pink text in cursive or Comic Sans. Good 
fonts and colour schemes are the key to an aesthetically pleasing design. Here are some 
recommended resources to help you get those colors and fonts just right: 
 
1. Fonts & typography 
● Font Recommendations 
● Read ​this article​. 
● Font Combinations 
 
2. Colour Schemes 
● Solid colour scheme generators: ​Palettable​, ​Coolors​, ​Color Hunt 
● Gradients 

   
Introduction to 3D Design 

The Medium 
We humans interpret the world around us in 3 dimensions. The goal of 3D design is, in a 
nutshell, to bring a vision to life. You build up the world you envision up from the small 
details, and keep adding upon. 

First Steps 
The software I’d recommend to use is Blender3D. Its free, open source, has good add-ons and 
a helpful community, so it’s great as a starting software. Once you’ve picked it up, learning 
to operate other 3D software is easy, due to common principles of the softwares. Blender also 
has a well spread out feature set, so it doesn’t have much fields which it’s not good in, unlike 
other 3D software. 
 
I’d highly recommend the Blender beginner series’ by ​Andrew Price(BlenderGuru)​ and ​CG 
Cookie​, check both of them out, and follow whichever you follow through better. Their 
advanced tutorials are great too. 

Project Phase 
Once you’ve done basics from the series, try creating something, no matter how basic, even 
if its something ​like this​.While the learning curve is steep at first, after the basics, it follows 
a staircase pattern of learning from tutorials, then making. 
 
It is a more steady path to getting better than only practicing/only seeing tutorials. A daily 
dedication of ½ hour is better than a weekend commitment of 4 hours, because doing all that 
practice at once doesn’t help as much, and you have much more probability of carrying it out 
if its spending some time every day. Also, set time limits on projects, and follow them, no 
point in stretching a project too long, since perfection is overrated. 
 
Watching tutorials is helpful for learning various workflows, which can be applied in many 
situations. Don’t simply follow the tutorial, make variations and experiment. This is crucial. 
 
Getting critique is extremely useful, never underestimate the learning you can get from a 
critique. 
Art Theory 
Spending some time on art theory videos can help in giving that important push which your 
renders would’ve lacked before. I’d recommend Andrew Price’s series on this, with 
Understanding Composition​ and ​Understanding Color​. Also, learn to use the compositor and 
other advanced features and post-processing effects. 

General Tips 
This is just a list of some must-have knowledge: 
 
● Check out ​www.hdrlabs.com/sibl/archive.html​ for HDRIs, they satisfy most use cases 
for HDRIs. Old industrial hall is especially versatile. 
 
● Learn to use the new universal material, the Principled BSDF, it is physically accurate, 
and also for color management, ​Filmic Blender​, it helps you get great results. 
 
● Tinker with RGB curves, math nodes, and the compositor. 
 
● Use the new denoiser, micro displacement, and adaptive subdivision. These will save 
you a LOT of time. 
 
● Install/enable essential addons such as node wrangler, import images as planes, 
BoolTool, Amaranth Toolset,​ Auto Render Tile Size, ANT Landscape, ​BLAM Blender 
Camera Calibration Toolkit. There are many more useful addons, so if you run into 
trouble doing some task, there’s a chance of it having an addon. 
 
● When in doubt about some error/unexpected behavior, ask at the ​Blender Stack 
Exchange forums​. 
 
● In many situations, you can implement workarounds to traditional methods such as 
simulations, due to them requiring a lot of computing resources. As you model, you 
will obtain the intuition required for this, as such work arounds can often reduce your 
render times from hours to minutes! 
 
Also, keep on persevering, it’ll take time, but you’ll start making good stuff, don’t worry 
about that. Just don’t worry too much if you’re not improving drastically, just enjoy the 
journey. 
Inspiration 
Many beginners lose motivation when doing 3D design, as they’re not making great stuff. For 
this reason, I’d recommend you to check out Deviantart, blenderartists and CGstreet, and 
take a screenshot of the renders which you like, and paste it in a central location, where that 
be a Google Doc or Evernote file. When you’re feeling a loss of determination, just open this 
file, to remember the motivation behind what you want to do. 
 
Also, subscribe to the Sketchfab weekly digest, the models(by the community) 
featured in it for that are stunning, and you can view it from different angles in real-time, in 
your browser! 

Getting Into Competitive 3D 


Competitive 3D refers to competitions where you are given a time limit and are expected to 
make a model in set time, at maximum 2.5 - 3 hours. For this, you need to decide on what 
will element impact your scene, and by impact spend time on it.  
 
You need a clear vision, first of all, so make placeholder objects(cube, sphere, 
cylinder, etc) and setup a prototype scene first, so you know the requirements of the scene 
and then later replace them with detailed models you make and add necessary lighting. 
 
Perhaps the critical point is lighting, it often takes less time than much of model, 
texturing, and the materials, but it may impact the scene the most. Good lighting brings out 
details through shadows, sets the “mood” of the scene and gives it good aesthetic feel.  
 
While in a normal scenario, a scene is made around only 1 render, so the final product 
is what matters most, in competitions you can often be asked to provide, 2, 3, or even 4 
views! This is also true for product design, so don’t skimp out on the initial detail on sides 
which may be visible at least. This can be alleviated by setting a prototype scene before 
hand, as mentioned above, with camera positions and all. 
 
Also, don’t underestimate render times, and no need to set a sample rate too high, 
especially now that the denoiser is here, and never forget to save a scene, as blender still has 
a few bugs, and is a good practice in general. 
 
 
 
 
 
 
 
The hierarchy of importance of stages are as follows: 

 
Enjoy! 
 
   
GameDev 

How to start making games: 

GamePlay: 
Basically, what are the core mechanics of your game going to be? Is it shooting people randomly? a 
ball that bounces around the terrain? Racing around in an open world? 
 

Idea size: 
A lot of ideas get stuck during production due to their size. If you are going to think of a open 
world multiplatform RPG with AAA graphics, that idea is going to stay as just that. An idea. You 
are not Valve or ​CD Projekt RED. Indie games are loved for their simple yet simple ideas and 
gameplay. 
 

Decide the Engine: 


So now you have come up with an million dollar idea, let's turn it to a reality. 

Game engines are reusable components used to build the framework of the game.This gives 
them more time to focus on the unique elements like character models, textures, how 
objects interact instead of reinventing the wheel and programming the renderer or physics. 

Choosing the right game engine suited to your game is important. Else you may end up 
spending months to make a game which can be realised in weeks in another engine like:Unity 
is best for Platformers. Unreal engine lets an indie developer create AAA graphics with no 
coding whereas cryengine beats all engines if you need a shooter. 

If you are new to ​this link​ may help you chose. 

Monetizing: 
You are not EA, and people would not pay you to unlock in game characters. 
Start with free games and when you have built a market presence start including in app 
purchases and monetizing games. 
Some things to keep in mind 
During the course of learning Construct and working on your projects, a few tips to produce 
best results which can be kept in mind are- 
● Design​ - A common trend amongst programmers is focusing on the code and 
undermining the importance of design. Undermining of a key feature like design is 
what prevents many games from breaking through to a whole different level. Have you 
ever realized how many popular 2D games, although simple in function, are so 
amusing? The secret to that is the simple, yet eye-catching design. 
 
● Precision​ - During the development of any project, simple or complicated, precision 
and awareness are the secret ingredients to success. If one slacks off during the 
building of the game, a bug which appears during testing may prove to be abstruse, 
simply as the person will have no idea as to what could have caused it. Moreover, 
presenting of a low-quality project which lacks uniformity among objects and proper 
positioning is highly embarrassing. These seemingly minute details can make or break 
your project. 
 
● Optimal Code​ - Optimal code is possibly the most important portion as it simplifies our 
process of creating and editing a project to the n​th​ degree. The more optimal the 
code, the easier it is for us to keep track of the bugs to fix. Moreover writing optimal 
code also makes it more convenient to add and edit the features of our game. 
   
● Cleanliness ​- This is by far the most important point. Cleanliness is essential not only 
for your Construct project but for all the other aspects of life. Keeping your code 
clean makes it much easier to review by both you and others. Clean code also provides 
a simple way to know the purpose of each variable or function. Moreover, easy to read 
code helps a lot while finding bugs . 
 
● Suggestions are not criticism​ - The feedback provided by the people interacting with 
your project should be taken in a positive manner as they will be the ones playing your 
game. Using the feedback from the users is a fool-proof way to improve your game. 
 

Some resources to help you: 


Blogs and an active community : ​http://www.gamasutra.com 
Game development channels :  
Brackeys​ & ​Blackthornprod​- Unity Game Development 
Virtus Learning Hub​ - Unreal & Cryengine 
GameMakerStudio 
Scratch 
   
 

Turing Test 
 
Linguistics  problems  come  in  many  shapes  and  sizes.  If  you  are  new  to  linguistics,  we  would 
recommend  looking  at  the  problems  presented  as  Fun  Problems  on  the  page  of  the  Panini 
Linguistics  Olympiad:  ​https://ltrc.iiit.ac.in/nlpmt/plo/resources.php​.  Once  you  have 
completed those, you can consider moving onto the problems of the olympiad itself (note that 
these  are  much  more  difficult).  However,  we  will  mostly  be  requiring  competitors  to  solve 
computational  linguistics  problems,  and  hence,  we  suggest  you  try  those  out  first.  Examples 
of computational linguistics problems include: 
 
1. PLO Senior 2014, Problem 6 (Encoding Trees) 
https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxwYW5p
bmlsaW5ndWlzdGljc29seW1waWFkfGd4OjVkNDViYjNkMjBjYjYwMTQ 
2. PLO Senior 2015, Problem 3 (Mnemonic Major System) 
https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxwYW5p
bmlsaW5ndWlzdGljc29seW1waWFkfGd4OjY1MjYwOTc2MWVjOGVkMw  
3. PLO Senior 2017, Problem 2 (Circles and Dots) 
https://cdn.iiit.ac.in/cdn/ltrc.iiit.ac.in/nlpmt/plo/Documents/QBSPLO2017.pdf 
4. PLO Senior 2018, Problem 2 (Word Embeddings) 
https://cdn.iiit.ac.in/cdn/ltrc.iiit.ac.in/nlpmt/plo/Documents/QBSPLO2018.pdf  
 
We  also  recommend  reading  about  and  exploring  other  fields  of  linguistics  explored  in  the 
past  papers  of  PLO,  including  phonology,  morphology,  semantics  and  number  systems.  While 
problems  can come in the Turing Test paper from these fields, they would be designed so that 
people  without  knowledge  of  terminology  can  solve  them  as  well,  and  points will be given to 
everyone  who  solves  the  questions,  irrespective  of  whether  they  use  precise  linguistic 
terminology  or  not.  However,  as  this  is  often  an  intuition-based  challenge,  having  a  firmer 
grasp  of  fundamental  linguistics  concepts  is  often  helpful in guiding some of your guesses and 
provides a better logic to understanding why something works the way it does. 
 
Further  challenges  can  be  explored  here.  Note  that  some  of  these  are  problems  from  the 
International  Linguistics  Olympiad  (IOL)  itself,  and  while  they  are  excellent  practice  for 
beginners  trying  to  be  better  at  solving  problems,  they  are  not  as  easy  to  solve  as  the 
problems mentioned earlier. 
 
1. Sample IOL Problems - ​http://www.ioling.org/problems/samples/​ (Fun, but 
challenging) 
2. NACLO Problems - ​http://nacloweb.org/​ (Range from very easy to very difficult at 
times, do check out the problems and don’t get disheartened if you find them too 
difficult at times. Despite the name being “Computational Linguistics” Olympiad, not 
all problems are from computational linguistics. Used to select USA’s IOL team.) 
3. UKLO Problems - ​http://www.uklo.org/problems​ (Used to select UK’s IOL team, 
similar to NACLO and PLO, you will need to see which problems are computational 
linguistics problems.) 
4. Actual IOL Problems - ​http://www.ioling.org/problems/​ (These are very difficult, and 
are generally tackled at the end, and only after lots of practice is it possible to solve 
them. However, do not let their difficulty level put you off, and we would suggest 
looking at these problems and trying to solve them. Recommended computational 
linguistics problems include - Telepathy (2013), mRNA Sequencing (2010), Soundex 
(2015), EAN-13 (2011). However, if you get interested in linguistics competitions (we 
hope you do!) after participating in Turing Test, feel free to check out the amazing 
range of problems you will find here, and we recommend Transcendental Algebra 
(2003), Abui (2017) and Emoji/Indonesian (2017 Team Problem) to peep inside this 
fascinating world.) 
 
   
Quizzing 
 
Quizzing might seem a bit daunting at first, but when you get to a certain level, answering a 
question on the stage after reading about the subject a few weeks prior can be extremely 
rewarding.  
 
To start off, you need to know what quizzing actually is: it's not a one line question with 
multiple choices for the answer; it's more of a paragraph-long puzzle, where you connect 
subtle hints within the question and apply your knowledge of technology to come to an 
answer. It's important to know that quizzers are rarely certain of an answer, and risk-taking is 
a must.  
 
We must emphasize that you shouldn't mug up questions - that's not what quizzing is about. It 
might help you in a quiz or two, but that's not what makes you a quizzer. Contrary to what 
some people may think, quizzing is as much a creative skill as programming or design. A good 
quiz will not only exercise your memory, but also require you to apply your critical thinking 
skills to the problem. You may need to analyze a question for getting hints out of it and using 
them to reach the answer.  
 
The first step to becoming a tech quizzer, is to build a base upon which your entire quizzing 
journey will lie. Basics like CEOs, founders, major tech events in history (like ​the Y2K bug​) 
and just general tech history (for example, knowledge about Fairchild Semiconductor) are a 
must. They aren't asked about much in quizzes, but they give you context about the history of 
technology. You may think, because they aren’t asked usually, you can skip this. But this part 
will definitely help you when trying to work a question out. 
 
Secondly, and more importantly, you have to stay up to date with what's going on in tech. 
This is an integral part of what makes a good quizzer. A few tech journals that will help you 
keep up are ​The Verge​, ​TechCrunch​ and T​ he Next Web​. If you use Facebook, you can follow 
the pages for these tech journals so you see tech news in your feed, or you can use a news 
app like Flipboard and follow the technology section. If you don’t have the time, during last 
minute preparations, to read long articles, you could go through the technology section on 
InShorts​. 
 
Just to provide clarity to this tutorial, we'll walk you through the process of figuring out the 
answer to a question.  
 
Example Question 
X is a fairly intuitive company known for its witty campaigns. X has ​built​ this reputation ​for 
themselves​ after repeatedly releasing hilarious ad campaigns aimed at Apple.  
 
2014: "Once in a while, something comes along that changes the way we live, a device so 
simple and intuitive, using it feels almost familiar," said ​Jorgen Eghammer​, the "chief design 
guru" in the ad for a revolutionary product from X, the bookbook. This ad campaign was 
meant as a jab at Apple for the launch of the Mac.  
 
2017: “This changes everything.” became “This charges everything.” While “Think Different.” 
is now “Link Different.” in the ad campaign for the revamped wireless chargers. 
 
What is X? 
 
 
 
How To Work It Out 
The italics are a clear indication of the keywords 
 
When you think of the words 'company’, 'build’ and ‘themselves’, you might think of a 
company which makes people build things themselves. So maybe something to do with 
vehicles or furniture. 
 
Jorgen Eghammer, while probably a fictional name, sounds quite Scandinavian. 
 
The 2017 part in the question points towards the current events nature of the question, and 
Ikea’s ad campaign in 2017 raised a lot of objections from Apple fans. 
 
So a Scandinavian company that makes you build things yourself and recently had an ad 
campaign? 
There you have your answer, Ikea. 
 
 
   
Resources for Programming 
 
 
Session1:​https://docs.google.com/document/d/1H1JpzvSBKMvM0VEn5JAVLZhQJEmrr9wMCK-c
p2Ad2bE/edit?usp=sharing 
 
Session2:​https://docs.google.com/document/d/1g-vaVLqVYeA9ktvC5RJYoeU6P6hhfiQZ9jt_Til
qm3g/edit?usp=sharing 
 
http://www.iarcs.org.in/inoi/online-study-material/topics/introduction.php 
 
Topic 1: Efficiency 
http://www.iarcs.org.in/inoi/online-study-material/topics/efficiency.php 
https://www.commonlounge.com/discussion/a57d4c72cfb9404ca089bb3f0e1402cf/main 
 
Now Register an account on Codeforces.com 
Go to “Contests”, and in the first 5 pages search for “Educational” (Ctrl+F). Do ​ALL​ “A” 
problems in the educational rounds. There are going to be about 35, and if you think this 
needs too much time, I’m afraid programming is not the sport for you. Hard Luck.  
These will provide you the build up required as prerequisite to these sessions. You will be 
prompted to solve more educational round problems in the middle/end of the sessions. 
 
Topic 2: (Release on 23rd) Sorting - 
http://www.iarcs.org.in/inoi/online-study-material/topics/sorting.php  
a. Quicksort: 
https://www.commonlounge.com/discussion/8ace3775a2e84b5db1347a4cbc9509d1/m
ain​ and ​http://www.iarcs.org.in/inoi/online-study-material/topics/quicksort.php 
b. Mergesort: ​http://www.iarcs.org.in/inoi/online-study-material/topics/mergesort.php 
and 
https://www.commonlounge.com/discussion/b1f0950472c94411befbcd88bf964204/ma
in 
http://www.iarcs.org.in/inoi/online-study-material/topics/stablesort.php 
 
After this read this whole document: 
https://www.topcoder.com/community/data-science/data-science-tutorials/sorting/ 
 
Homework: 
Email us your own implementation of Quicksort and Mergesort to sort an inputted array  
in descending order. 
 
Topic 3: Searching - Release on 24th 
http://www.iarcs.org.in/inoi/online-study-material/topics/binarysearch.php 
https://www.commonlounge.com/discussion/601e95ee310545a78a429b676def547f/main 
https://www.commonlounge.com/discussion/9efbe64b3fb04690abc1622b461185fd/main 
 
After this read this whole document: 
https://www.topcoder.com/community/data-science/data-science-tutorials/binary-search/ 
 
Homework: 
http://www.spoj.com/problems/BSEARCH1/ 

www.spoj.com/problems/AGGRCOW/ 

 
Session3: Release on 25th 
https://docs.google.com/presentation/d/1pxhKi-GmK0SB28B5kcFv-Gbu5mK8joaji3bbL3SGuo4
/edit?usp=sharing​ [LINK ​DELETED] 
Had topics: Truth Tables, Bitwise, Intro to DP, Kadanes Algorithm 
 
STL: 25th 
https://www.topcoder.com/community/data-science/data-science-tutorials/power-up-c-wit
h-the-standard-template-library-part-1/ 
 
BITS: 25th 
https://www.hackerearth.com/practice/basic-programming/bit-manipulation/basics-of-bit-m
anipulation/tutorial/ 
https://www.topcoder.com/community/data-science/data-science-tutorials/a-bit-of-fun-fun-
with-bits/ 
 
Session 4: 
https://docs.google.com/document/d/10xFvCbVi1cWvo0P6W-iaBMmqyG1mlJvji-Dv08_sta8/ed
it?usp=sharing 
 
Recursion: 25th 
https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-
to-recursion-part-1/  
https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-

to-recursion-part-2/ 

Homework: 
http://codeforces.com/problemset/problem/327/A  (more  of  kadane’s  algorithm  than 

recursion) 

Session 3 Challenge Questions 

Topic 4: Greedy Algorithms Release on 27th 

https://www.hackerearth.com/practice/algorithms/greedy/basics-of-greedy-algorithms/tuto

rial/ 

https://www.cs.princeton.edu/~wayne/kleinberg-tardos/pdf/04GreedyAlgorithmsI.pdf 

https://www.topcoder.com/community/data-science/data-science-tutorials/greedy-is-good/ 

Homework:  
https://www.codechef.com/problems/DONUTS 

https://www.codechef.com/problems/GRGUY 

https://www.hackerrank.com/exun-e-lite-2017-senior-programming-semi-finals 

Topic 5: Math, Algebra, Number Theory Release on 29th 

https://www.hackerearth.com/practice/math/number-theory/basic-number-theory-1/tutoria

l/ 

https://www.hackerearth.com/practice/math/number-theory/basic-number-theory-2/tutoria

l/ 

https://www.hackerearth.com/practice/math/combinatorics/basics-of-combinatorics/tutoria

l/ 
http://www.geeksforgeeks.org/sieve-of-eratosthenes/ 

http://www.geeksforgeeks.org/sieve-eratosthenes-0n-time-complexity/ 

http://www.geeksforgeeks.org/least-prime-factor-of-numbers-till-n/ 

http://www.geeksforgeeks.org/prime-factorization-using-sieve-olog-n-multiple-queries/ 

https://discuss.codechef.com/questions/20451/a-tutorial-on-fast-modulo-multiplication-exponent

ial-squaring 
Read  for  a  more  detailed  tutorial: 

http://www.topcoder.com/community/data-science/data-science-tutorials/basics-of-combinatori

cs/​ (Not that basic). 

Homework: 

https://www.codechef.com/problems/LCKYST 

https://www.codechef.com/problems/CHEFLCM 

http://www.spoj.com/problems/PFACT/ 

https://www.codechef.com/problems/EGRCAKE 

https://www.codechef.com/problems/CBALLS 

https://www.codechef.com/problems/BINTOUR 

https://www.codechef.com/problems/CODECRCK 

https://www.codechef.com/problems/BANROB 

https://www.codechef.com/problems/SETDIFF 

https://www.codechef.com/problems/EGBOBRD 

Here,  it  is  CF  educational  problems  time  again.  Go  to  CF “Contests”, Search the first 5 pages 

for  all  educational  problems,  and  do  all  “B”  Problems.  These  should  be  easy  to  do  with  your 

current knowledge. 

Topic 6: Dynamic Programming Release on 2nd. 

https://www.youtube.com/watch?time_continue=9&v=e0CAbRVYAWg 

http://www.iarcs.org.in/inoi/online-study-material/topics/dp-basics.php 

http://www.iarcs.org.in/inoi/online-study-material/topics/dp-tiling.php 

http://www.iarcs.org.in/inoi/online-study-material/topics/dp-grid-paths.php 

http://www.iarcs.org.in/inoi/online-study-material/topics/dp-classics.php  (IGNORE  MATRIX 

MULTIPLICATION FOR NOW)  

LIS O(N^2): ​https://www.youtube.com/watch?v=CE2b_-XfVDk 

LIS O(NLogN): https://www.youtube.com/watch?v=1RpMc3fv0y4 

Prefix Sum 1D 


http://www.iarcs.org.in/inoi/online-study-material/topics/prefix-sums-maximum-sum-subsec

tion.php 

Prefix Sum 2D 

http://www.iarcs.org.in/inoi/online-study-material/topics/prefix-sums-ramus-mango-trees.p

hp 

Intro to DP: ​https://apps.topcoder.com/forums/?module=Thread&start=0&threadID=700080 

Knapsack: 

http://www.geeksforgeeks.org/dynamic-programming-set-10-0-1-knapsack-problem/ 

http://www.geeksforgeeks.org/unbounded-knapsack-repetition-items-allowed/ 

Homework: 

http://www.spoj.com/problems/FARIDA/ 

http://codeforces.com/problemset/problem/166/E 

http://codeforces.com/problemset/problem/474/D 

https://www.codechef.com/problems/CD1IT4 

http://codeforces.com/contest/429/problem/B 

http://www.spoj.com/problems/WACHOVIA/ 

https://www.hackerrank.com/challenges/unbounded-knapsack 

http://www.spoj.com/problems/BRIDGE/ 

http://www.spoj.com/problems/SUPPER/ 

Topic 7: Stacks 

https://stackoverflow.com/questions/9493853/given-an-array-find-out-the-next-smaller-elem

ent-for-each-element 

Homework: 

1. Implement  a  single  code  that  stores  for  ever  index  the  next  larger,  previous  larger, 

next smaller and previous smaller. 


2. Given  an  array,  for every range L to R in the array take its minimum element. Find the 

sum of these minimum elements in O(N) 

http://codeforces.com/problemset/problem/547/B 

Topic 8: Graph Theory - 9th  

Part A: Definitions and Representation 

Intro: ​https://www.youtube.com/watch?v=HmQR8Xy9DeM 

https://www.topcoder.com/community/data-science/data-science-tutorials/introduction-to-

graphs-and-their-data-structures-section-1/ 

Homework:  

Implement a basic code for Adjacency matrix and Adjacency List 

(Take  input  of  user  for  the  number  of  vertices,  (1  to  n)  number  of  edges  and  then take each 

edge  in  the  form  of  u  v  w  where  u  =  initial  vertex  v  =  final  vertex  and  w  =  cost.  Output  an 

adjacency  matrix  with  cell  [u][v]  having  value  w  for  all  edges  and  the  cities  not  directly 

connected  should  have  value  -1.  In a new program output the adjacency list instead, in which 

for  each  vertex  from  1  to  N  output  the  list  of  vertices  it  is  connected  to  and  the 

corresponding edge weight). 

http://codeforces.com/problemset/problem/707/B 

http://codeforces.com/problemset/problem/246/D 

Part B: Reachability and Traversals - 10th 

http://www.iarcs.org.in/inoi/online-study-material/topics/graphs-grids.php 

http://www.iarcs.org.in/inoi/online-study-material/topics/graphs-bfs.php​ (Including video) 

http://www.iarcs.org.in/inoi/online-study-material/topics/graphs-dfs.php​ (Including video) 

https://www.topcoder.com/community/data-science/data-science-tutorials/introduction-to-

graphs-and-their-data-structures-section-2/ 

Homework: 
http://codeforces.com/problemset/problem/540/C 

http://codeforces.com/problemset/problem/377/A 

http://codeforces.com/problemset/problem/115/A 

http://codeforces.com/problemset/problem/580/C 

http://codeforces.com/problemset/problem/431/C 

Part C: DAGs and Topological Sort- 12th ​Explicitly not required for ZCO. 

http://www.iarcs.org.in/inoi/online-study-material/topics/dags.php​ (including videos) 

http://www.thecrazyprogrammer.com/2017/05/topological-sort.html 

Homework: 

http://www.spoj.com/problems/TOPOSORT/ 

http://www.spoj.com/problems/RPLA/​ (use scanf printf as has some useless tle issues) 

http://codeforces.com/contest/510/problem/C 

https://www.codechef.com/problems/TIDURAT​ (Introduces LCA in logN) 

Topic 8: Important Tricks: 13th 

a. Binary string generation 

b. Meet in the Middle 

https://www.codechef.com/MAY17/problems/CHEFCODE 

Homework: 

https://www.codechef.com/MAY17/problems/CHEFCODE 

List of ZCO Problems​ - ​http://www.codechef.com/ZCOPRAC/​ ​. 

 
AFTER YOU HAVE DONE EVERYTHING BEFORE THIS, DO ALL CODEFORCES EDUCATIONAL 
“C” problems. 
 
2D DP LIST: 
 
1. Longest Palindromic Substring (All sols, N^3 N^2 N^2 with optimized Space and then N 
[manachers algorithm]) 
2. IOIPALIN - IOI 2000. On SPOJ 
3. PEG TROYANGLES - ​http://wcipeg.com/problem/ccc14s2p1 
4.  
5.  
 

Potrebbero piacerti anche