Thursday, December 26, 2013

BFS

গুগ্লিং করেই BFS শিখে ফেলতে পারবে। তেমন কঠিন না। গুগ্লিং করার সময় BFS ppt  লিখে সার্চ দিলে power point এর স্লাইড আসবে। স্লাইড দিয়ে শেখাটা অনেক সহজ।

BFS from shafaetsplanet

#define MAX 1000

vector<int>con[MAX]; // graph representation
bool color[MAX];

void bfs(int start,int end)
{
    queue<int>Q;
    Q.push(start);
    color[start] = true;

    while(!Q.empty())
    {
        int u = Q.front();
        Q.pop();

        for(int i=0;i<con[u].size();i++)
        {
            int v = con[u][i];
            if(color[v] == false)
            {
                Q.push(v);
                color[v] = true;
            }
        }
    }

    return ; // return result
}

কিছু লজিকঃ

1. co-ordinate move এর ক্ষেত্রে manually move  গুলো না দিয়ে একটা array এর মধ্যে move গুলো রেখে সবগুলো move বের করা যায়।

int rrr[]={1,0,-1,0};
int ccc[]={0,1,0,-1};
// left, down, up, right

int x = 3,y = 5; // initial position

for(int i=0;i<4;i++)
{
    int u = x+rrr[i];
    int v = y+ccc[i];
    
    // u,v will contain new cordinate
}


Problem

UVA - 572, 469, 439, 532, 336, 260, 10004, 11080, 10336, 11518
Lightoj - 1012,1039
HDU - 4171

Wednesday, December 25, 2013

Graph basic, STL

এখানে টপিকসগুলোর নাম দেয়া আছে। নেট এ সার্চ দিলেই পাওয়া যাবে। যদি কোনটা শিখতে সমস্যা হয় তবে নিচে কমেন্টে জানাও। কেউ নিজে শেখার সময় যদি ভাল কোন লিংক পাও তবে তা সবার সাথে শেয়ার করো। এগুলো না শিখলে পরেরগুলো পারা যাবে না। একটার সাথে আরেকটা রেলেটেড। ধাপে ধাপে সব দেয়া হবে। তাই প্রতিটা জিনিস শিখতে হবে।

শিখতে হবে

শুরুর কথা...

অনেকেই আছে যাদের প্রোগ্রামিংয়ে অনেক আগ্রহ কিন্তু সঠিক কোচিং এর অভাবে ঠিক করতে পারে না কোথা থেকে শুরু করবে। এই সাইটে চেষ্টা করবো প্রথম দিক থেকে ক্যাটেগরি ধরে রিসোর্স দিতে আর প্রব্লেম দিতে। প্রোগ্রামিং শেখার জন্যে প্রব্লেম সল্ভ করার বিকল্প কিছু নেই।

এখানে কিছু শিখিয়ে দেয়ার চেয়ে অনলাইনে পাওয়া যায় এমন রিসোর্স বেশি দেয়া হবে। নিজেকেই তা থেকে শিখে নিতে হবে। সবথেকে ভাল হয় যদি নিজেদের বন্ধুদের নিয়ে একটা গ্রুপ করে নেয়া যায়। তাহলে শেখাটা অনেক সহজ ও দ্রুত হবে। নিজে নতুন কিছু শিখলে সাথেসাথে পাশের বন্ধুকে তা শিখিয়ে দিতে হবে। এভাবে knowledge share এর অভ্যাস গড়ে তুলতে হবে। প্রতিটা পোস্ট এর নিচে কমেন্ট এ সবাই আলোচনা করতে পার যাতে তোমার পাশাপাশি অন্যরাও শিখতে পারে।

নতুন কিছু শেখার জন্যে সবথেকে ভাল যা পারতে হয় তা হল ভাল গুগ্লিং করা। :) কিছু সার্চ করার সময় তার শেষে ppt লিখে সার্চ দিও, তাহলে power point এর slide গুলো প্রথমে আসবে। স্লাইড দিয়ে শেখা কিছুটা সহজ।

যে যে প্রবলেম গুলো দেয়া হবে তার সবগুলো সময়মত করতে হবে। প্রয়োজনে বন্ধুর সাহায্য নাও, অনলাইনে আলোচনা কর, কিন্তু সময়মত সবগুলো শেষ করতে হবে।

সবশেষে প্রোগ্রামিংটাকে fun হিসেবে নাও। Happy coding. :)