Topcoder SRM631 DIV2 解题报告

250:网格有两种颜色,网格中一列最长的连续的颜色相同的最大值。

解题思路:暴力。

解题代码:

// BEGIN CUT HERE
/*

*/
// END CUT HERE
#line 7 "TaroGrid.cpp"
#include <cstdlib>
#include <cctype>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
#include <sstream>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <fstream>
#include <numeric>
#include <iomanip>
#include <bitset>
#include <list>
#include <stdexcept>
#include <functional>
#include <utility>
#include <ctime>
using namespace std;

#define PB push_back
#define MP make_pair

#define REP(i,n) for(i=0;i<(n);++i)
#define FOR(i,l,h) for(i=(l);i<=(h);++i)
#define FORD(i,h,l) for(i=(h);i>=(l);--i)

typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<double> VD;
typedef long long LL;
typedef pair<int,int> PII;

class TaroGrid
{
        public:
        int getNumber(vector <string> grid)
        {
             int n = grid[0].size();
             int mx = 1;
             int len = grid.size();
             for(int i = 0 ;i < n ;i++)
             {
               int temp = grid[0][i];
               int sum = 1 ;
               for(int j = 1;j < len ;j ++)
               {
                 if(grid[j][i] == temp)
                 {
                    sum ++ ;
                 }else {
                    sum = 1 ;
                    temp = grid[j][i];
                 }
                 if(sum > mx)
                     mx = sum ;
               }
             }
          return mx;
        }

};

500:无限长的数轴有某些位置有给定数目的猫,每一秒猫可以呆在原地和向左右走,给你限制时间,问你能否让每个位置最多只有一个猫。

解题思路:对有猫的点排序,把所有的猫尽可能往左边放,如果放不下,或者不能把每个有重复区间,则不可能

解题代码:

 1 // BEGIN CUT HERE
 2 /*
 3
 4 */
 5 // END CUT HERE
 6 #line 7 "CatsOnTheLineDiv2.cpp"
 7 #include <cstdlib>
 8 #include <cctype>
 9 #include <cstring>
10 #include <cstdio>
11 #include <cmath>
12 #include <algorithm>
13 #include <vector>
14 #include <string>
15 #include <iostream>
16 #include <sstream>
17 #include <map>
18 #include <set>
19 #include <queue>
20 #include <stack>
21 #include <fstream>
22 #include <numeric>
23 #include <iomanip>
24 #include <bitset>
25 #include <list>
26 #include <stdexcept>
27 #include <functional>
28 #include <utility>
29 using namespace std;
30
31 #define PB push_back
32 #define MP make_pair
33
34 #define REP(i,n) for(i=0;i<(n);++i)
35 #define FOR(i,l,h) for(i=(l);i<=(h);++i)
36 #define FORD(i,h,l) for(i=(h);i>=(l);--i)
37
38 typedef vector<int> VI;
39 typedef vector<string> VS;
40 typedef vector<double> VD;
41 typedef long long LL;
42 typedef pair<int,int> PII;
43
44 struct node{
45   int x, y;
46 }cat[100];
47 bool cmp(node a, node b )
48 {
49    return a.x < b.x;
50 }
51 class CatsOnTheLineDiv2
52 {
53         public:
54         string getAnswer(vector <int> p, vector <int> c, int t)
55         {
56            int n = p.size();
57            for(int i = 0 ; i< n;i ++ )
58            {
59               cat[i].x = p[i];
60               cat[i].y = c[i];
61            }
62            sort(cat,cat+n,cmp);
63            int s = -1e9;
64            int ok = 1;
65            for(int i = 0 ;i < n;i ++)
66            {
67
68              int k1 = max(s+1,cat[i].x-t);
69              int k2 = k1 + cat[i].y -1;
70              //printf("%d %d\n",k1,k2);
71              if(k2 - cat[i].x > t)
72                  ok  = 0 ;
73              s = k2;
74            }
75            if(!ok)
76                return "Impossible";
77            else return "Possible";
78
79         }
80
81
82 };

时间: 2024-10-08 17:55:52

Topcoder SRM631 DIV2 解题报告的相关文章

Topcoder SRM632 DIV2 解题报告

250:乱搞 解题代码: 1 // BEGIN CUT HERE 2 /* 3 4 */ 5 // END CUT HERE 6 #line 7 "RunningAroundPark.cpp" 7 #include <cstdlib> 8 #include <cctype> 9 #include <cstring> 10 #include <cstdio> 11 #include <cmath> 12 #include <

Topcoder SRM633 DIV2 解题报告

250:乱搞. 1 // BEGIN CUT HERE 2 /* 3 4 */ 5 // END CUT HERE 6 #line 7 "Target.cpp" 7 #include <cstdlib> 8 #include <cctype> 9 #include <cstring> 10 #include <cstdio> 11 #include <cmath> 12 #include <algorithm> 1

cf#261 div2 解题报告

.....代码没什么可说的,主要是学习各路大神姿势 A题 化简化简水题,都告诉平行坐标轴了,数据还出了对角线,后面两个点坐标给的范围也不错 ........和最优代码相比姿势有点混乱 #include <cstdio> int x[4],y[4]; int abs(int n){ return n<0?-n:n; } int main(){ scanf("%d%d%d%d",x,y,x+1,y+1); int dx=abs(x[0]-x[1]); int dy=abs

Codeforces #263 div2 解题报告

比赛链接:http://codeforces.com/contest/462 这次比赛的时候,刚刚注册的时候很想好好的做一下,但是网上喝了个小酒之后,也就迷迷糊糊地看了题目,做了几题,一觉醒来发现rating掉了很多,那个心痛啊! 不过,后来认真的读了题目,发现这次的div2并不是很难! 官方题解:http://codeforces.com/blog/entry/13568 A. Appleman and Easy Task 解析: 一个水题,判断每个细胞周围是否都是有偶数个相邻细胞.   代码

Codeforces Round#320 Div2 解题报告

Codeforces Round#320 Div2 先做个标题党,骗骗访问量,结束后再来写咯. codeforces 579A Raising Bacteria codeforces 579B Finding Team Member codeforces 579C A Problem about Polyline codeforces 579D "Or" Game codeforces 579E Weakness and Poorness codeforces 579F LCS Aga

cf#263 div2 解题报告

A:要求是否全部的字符都挨着偶数个'o',要读题啊....各种读错题... #include <cstdio> using namespace std; char maz[101][101]; int n; int cnt[101][101]; const int dx[4]={0,0,-1,1}; const int dy[4]={1,-1,0,0}; int main(){ scanf("%d",&n); gets(maz[0]); for(int i=0;i&

topcoder srm 623解题报告

详见:http://robotcator.logdown.com/posts/231132-topcoder-srm-623 推荐使用插件greed 2.0,非常使用的插件.但我不知道如何自己添加测试数据,下次再学习下. Greed 2.0 https://github.com/shivawu/topcoder-greed 250pt 题意:环形跑道上有n棵树,标号为1--n,Alice跑步时记录下一些树的标号.问通过这些编号计算她最少跑了多少圈. 题解:稍微想一下就知道,一圈下来树的编号都是递

解题报告 之 POJ3057 Evacuation

解题报告 之 POJ3057 Evacuation Description Fires can be disastrous, especially when a fire breaks out in a room that is completely filled with people. Rooms usually have a couple of exits and emergency exits, but with everyone rushing out at the same time

hdu 1541 Stars 解题报告

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1541 题目意思:有 N 颗星星,每颗星星都有各自的等级.给出每颗星星的坐标(x, y),它的等级由所有比它低层(或者同层)的或者在它左手边的星星数决定.计算出每个等级(0 ~ n-1)的星星各有多少颗. 我只能说,题目换了一下就不会变通了,泪~~~~ 星星的分布是不是很像树状数组呢~~~没错,就是树状数组题来滴! 按照题目输入,当前星星与后面的星星没有关系.所以只要把 x 之前的横坐标加起来就可以了