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

Автор Fox235, 13 лет назад, По-русски

Всем привет. Попытался разобраться с технологией CUDA. В интернете множества отдельных статей, но нигде нет более структурированной информации (книги или пособия). Максимум, что я смог найти это несколько статей на хабре. Если кто работал (или работает) с данной технологией посоветуйте какой-нибудь методический материал. Заранее большое спасибо

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

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

Автор Fox235, 13 лет назад, По-русски

Всем привет. Может быть подобный вопрос уже задавался тут (и не раз). Но все-таки подскажите где еще проходят подобные соревнования как на данном сайте
И, второй вопрос. Есть ли подробное описание алгоритмов в электронном виде по категориям (кроме Кнута)
Всем спасибо.

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

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

Автор Fox235, 13 лет назад, По-русски

Привет, Всем!
Хотел бы попросить совета (помощи) по данной задачке. Ошибка выдается в тесте №12. Попытался  добить 7 (урезанных строк) разными вариантами, но все равно ошибка выдается.   Код ниже:
static void Main(string[] args)
        {
           // StreamReader ttt = new StreamReader("C:\\1.txt");
            String[] sInput = Console.ReadLine().Split(' ');
            int iY = Convert.ToInt32(sInput[0]);
            int iX = Convert.ToInt32(sInput[1]);
            int iK = Convert.ToInt32(sInput[2]);
            String[] iDataLab = new String[iY];
            int iMaxData = -1;           

            for (int i = 0; i < iY; i++)
                iDataLab[i] = Console.ReadLine();

            String iCommand = Console.ReadLine();

            int[,] bArrayRoom = new int[iY, iX];
            for (int i = 0; i < iY; i++)
            {
                for (int j = 0; j < iX; j++)
                {
                    switch (iDataLab[i][j])
                    {
                        case '#':
                            bArrayRoom[i, j] = 0;
                            break;
                        case '.':
                            bArrayRoom[i, j] = 1;
                            break;
                        case 'E':
                            bArrayRoom[i, j] = 2;
                            break;
                    }
                }
            }

            int[,] bCommandStep = new int[iCommand.Length, 2];
            for (int i = 0; i < iCommand.Length; i++)
            {
                switch (iCommand[i])
                {
                    case 'U':
                        bCommandStep[i, 0] = -1;
                        bCommandStep[i, 1] = 0;
                        break;
                    case 'D':
                        bCommandStep[i, 0] = 1;
                        bCommandStep[i, 1] = 0;
                        break;
                    case 'L':
                        bCommandStep[i, 0] = 0;
                        bCommandStep[i, 1] = -1;
                        break;
                    case 'R':
                        bCommandStep[i, 0] = 0;
                        bCommandStep[i, 1] = 1;
                        break;
                }
            }
            int iIndex = 0;
            int iCurX = 0;
            int iCurY = 0;
            bool bNotStep = false;

            for (int iBeginY = 0; iBeginY < iY && !bNotStep; iBeginY++)
            {
                for (int iBeginX = 0; iBeginX < iX && !bNotStep; iBeginX++)
                {
                    switch (bArrayRoom[iBeginY, iBeginX])
                    {
                        case 0:
                            break;
                        case 1:
                            iCurX = iBeginX;
                            iCurY = iBeginY;
                            iIndex = 0;
                            bNotStep = true;                    
                            for (int i = 0; i < iCommand.Length; i++)
                            {
                                iCurY += bCommandStep[i, 0];
                                iCurX += bCommandStep[i, 1];
                                if (iCurY < 0 || iCurY > iY - 1 || bArrayRoom[iCurY, iCurX] == 0)
                                    iCurY -= bCommandStep[i, 0];

                                if (iCurX < 0 || iCurX > iX - 1 || bArrayRoom[iCurY, iCurX] == 0)
                                    iCurX -= bCommandStep[i, 1];
                                iIndex++;

                                if (bArrayRoom[iCurY, iCurX] == 2)
                                {
                                    bNotStep = false;
                                    if (iIndex > iMaxData)
                                        iMaxData = iIndex;
                                    break;
                                }
                            }
                            break;
                        case 2:
                            bNotStep = false;
                            if (iIndex > iMaxData)
                                iMaxData = iIndex;
                            break;
                    }
                }
            }
            if (bNotStep)
                iMaxData = -1;
            Console.WriteLine(iMaxData);
        }

Всем Спасибо за внимание!!!

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

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

Автор Fox235, 13 лет назад, По-русски

Здравствуйте Всем.
Решил порешать задачки из "Архива" и завис на задачке 2A "Победитель". Написал код на C# , проверил разные варианты. При отправке выдает, что ошибка в 6 тесте. Никак не могу понять в чем ошибка. Помогите, пожалуйста. Код ниже:

struct stNumberAndPoints
    {
        public String sPlayerName;
        public int iPlayerPoints;
    }

    class Program
    {
        static void Main()
        {
            int iCountRounds = Convert.ToInt32(Console.ReadLine());
            List<stNumberAndPoints> lstData = new List<stNumberAndPoints>();
            stNumberAndPoints stnapCurrentPlayer;
            String[] sCurrentLine;
            for (int i = 0; i < iCountRounds; i++)
            {
                sCurrentLine = Console.ReadLine().Split(' ');
                if (sCurrentLine.Count() == 2)
                {
                    stnapCurrentPlayer.sPlayerName = sCurrentLine[0].Trim().ToLower();
                    int iCount = lstData.Where(it => it.sPlayerName == stnapCurrentPlayer.sPlayerName).Count();
                    if (iCount > 0)
                    {
                        stnapCurrentPlayer.iPlayerPoints = Convert.ToInt32(sCurrentLine[1].Trim()) + lstData.Where(it => it.sPlayerName == stnapCurrentPlayer.sPlayerName).LastOrDefault().iPlayerPoints;
                        if (Convert.ToInt32(sCurrentLine[1].Trim()) != 0)
                        {
                            lstData.Remove(lstData.Where(it => it.sPlayerName == stnapCurrentPlayer.sPlayerName).FirstOrDefault());
                            lstData.Add(stnapCurrentPlayer);
                        }
                    }
                    else
                    {
                        stnapCurrentPlayer.iPlayerPoints = Convert.ToInt32(sCurrentLine[1].Trim());
                        lstData.Add(stnapCurrentPlayer);
                    }
                }
            }

            Console.WriteLine(lstData.Where(it => it.iPlayerPoints == lstData.Max(it1 => it1.iPlayerPoints)).FirstOrDefault().sPlayerName);
        }
    }

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

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