みけCATのにっき(仮)
つれづれなるまゝに、日くらし、PCにむかひて、心に移りゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐるほしけれ。
(本当か!?)
出典

TopCoder SRMに参加してきました

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

TopCoder SRMに参加してきました

投稿記事 by みけCAT » 14年前

日本時間で今日の10時からのSRM 519に参加しました。
SRMは今回が初参加。
初参加なのでDiv2のようです。
結論から言うと

Div2の中で4位
レーティング:(無し)→1759

・・・本当ですよね?
なんかすごいことになったみたいです。

これが実際に提出したソースコードです。
[hr]
Easy(250点)

CODE:

#line 63 "WhichDay.cpp"
#include 
#include 

using namespace std;

class WhichDay {
	public:
		string getDay(vector  notOnThisDay) {
			const string days[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
			int notthis[7]={0};
			int i,j;
			for(i=0;i
#include 
#include 
#include 

using namespace std;

class ThreeTeleports {
	private:
		int dist(int sx,int sy,int dx,int dy) {
			return abs(sx-dx)+abs(sy-dy);
		}
	public:
		int shortestDistance(int xMe, int yMe, int xHome, int yHome, vector  teleports) {
			int use[6][3]={
				{0,1,2},
				{0,2,1},
				{1,0,2},
				{1,2,0},
				{2,0,1},
				{2,1,0}
			};
			long long shortest=0x7fffffffffffffffLL;
			long long nowtime;
			int tppos[3][4];
			int which,howmany,dotti;
			int i;
			int nowx,nowy;
			//get tppos
			for(i=0;i
#include 

using namespace std;

class BinaryCards {
	public:
		long long largestNumber(long long A, long long B) {
			int i;
			long long answer;
			for(i=63;i>=0;i--) {
				if(!(A & (1LL=0;i--) {
				answer|=(1LL<<i);
			}
			return answer;
		}
};
高い桁から見ていって、最初にAで0→Bで1となっているビット以降を全て1にした数を出力。
オーバーフローに注意。
[hr]
次はいつ出られるかわかりませんが、次に出る時は多分Div1ですね。
また頑張りたいと思います。

アバター
a5ua
記事: 199
登録日時: 15年前

RE: TopCoder SRMに参加してきました

投稿記事 by a5ua » 14年前

Twitterで嘆いているのが目に入ったのでコメントします。
Yellow Coder ウラヤマシス。(私は、緑と青の間をさまよってます。)

私も書いてみました。Mediumは再帰を使ったらシンプルに書けますね
[tabs][tabs:250]

CODE:

#include 
#include 
#include 

using namespace std;

class WhichDay {
public:
	string getDay(vector );
};

template 
bool exists(const Range &r, const Value &v) {
	return find(r.begin(), r.end(), v) != r.end();
}

string WhichDay::getDay(vector  notOnThisDay) {
	const string w[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
	for (int i = 0; i 
#include 
#include 
#include 
#include 

using namespace std;

class ThreeTeleports {
public:
	int shortestDistance(int, int, int, int, vector );
};

struct teleport {
	teleport(const string &s) {
		istringstream iss(s);
		iss >> x1 >> y1 >> x2 >> y2;
	}
	int x1, y1, x2, y2;
};

vector T;
bool used[3];

// city-block distance
int cbd(int x1, int y1, int x2, int y2) {
	return abs(x1 - x2) + abs(y1 - y2);
}

long long bfs(int x, int y, int gx, int gy) {
	long long result = cbd(x, y, gx, gy);
	for (int i = 0; i  teleports) {
	for (int i = 0; i >= 1) {
		if ((A & M) == (B & M)) {
			result |= (A & M);
		} else {
			return result | ((M << 1) - 1);
		}
	}
	return result;
}
[/tabs]