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 ",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 };