貪心的思想是每經(jīng)過5分鐘如果有可以選的課,那么就選所有可以選的課中最早結(jié)束的那一門課,然后t+=10(5minutes)!可是如果當前時間剛好沒有選課(也就是沒有選到課,我們不必等5minutes),那么按照題目的意思我們可以對t+=2(1minutes)。這樣有錯嗎?我把你寫的code按上面的想法改了,可是不對??
請神牛賜教!
QQ:707089795
re: itoa的兩種實現(xiàn)[未登錄] Knight 2010-10-29 15:17
你的itoa有個問題:
你傳進來的參數(shù)char *string, 它的空間大小用戶無法知道
re: [ZZ]后綴數(shù)組[未登錄] Knight 2010-07-30 09:26
@愛上對方
請你仔細閱讀標題
【ZZ】轉(zhuǎn)載。。懂
用_strdup把std::string 轉(zhuǎn)成char* 后, 還必須自行去free char*數(shù)據(jù),否則會有內(nèi)存泄漏
@inowfordream
有個條件說夫妻不能在一邊吧 。。。。這題很久了。。
re: 后天省賽了 Knight 2009-05-24 23:30
結(jié)束了。。。。。
re: Network of Schools Knight 2009-05-14 07:24
感謝zju的HH神牛,謝謝 HH神牛的數(shù)據(jù)2個點 a->b
2
2 0
0
對于in==1&&out==1但是scc==2
re: 最優(yōu)比例生成樹[未登錄] Knight 2009-01-20 08:54
@菠蘿東西
代碼我發(fā)到你郵箱了。
re: Stars[未登錄] Knight 2009-01-12 10:01
#include<stdio.h>
#define SIZE1 32000
#define SIZE2 15000
int c[SIZE1],a[SIZE1],out[SIZE2],n;
int lowbit(int k)
{
return k&(-k);
}
int sum(int k)
{
int ret=0;
while(k>0)
{
ret+=c[k];
k-=lowbit(k);
}
return ret;
}
void change(int pos,int delt)
{
while(pos<=SIZE1)
{
c[pos]+=delt;
pos+=lowbit(pos);
}
}
void init()
{
int i;
int x,y;
for(i=0;i<n;i++)
{
scanf("%d%d",&x,&y);
x++;
out[sum(x-1)+a[x]]++;
change(x,1);
a[x]++;
}
}
int main()
{
int i;
scanf("%d",&n);
init();
for(i=0;i<n;i++)
printf("%d\n",out[i]);
}
pip來了,但是他說他也不會他是線段樹過的。。。。。
線段樹。。。。。代碼不是我的。。。網(wǎng)上的。。。。不過不錯。。。題目有個條件就是按y升序給出數(shù)據(jù)。。。。所以可以用樹狀數(shù)組,其實可以排序在用的。。。。。繼續(xù)物理。。。。關(guān)機。。。
re: The Troublesome Frog Knight 2009-01-08 22:32
我暈,一個晚上居然沒調(diào)出來。。。。。
讀題還少了條件。。。。。
現(xiàn)在可好了還是超時的東西。。。。
re: POJ 2967 Triangles Knight 2008-12-25 12:37
思路沒錯,因為寫的時候
有了min1+min2<=MAX存在了溢出問題。。。。所以WA了
改了之后排名第四516msAC
魷魚大牛的思路
從n*n開始搜索到1結(jié)束DP更新路徑
排名20 3160K 157MS C++ 1228B
還行經(jīng)典代碼如下:
for(i=M;i>=1;i--)
{
for(j=0;j<8;j++)
{
int x=num[i].x+dir[j][0];
int y=num[i].y+dir[j][1];
if(OK(x,y,i))
{
if(num[i].max+1>num[map[x][y]].max)
{
num[map[x][y]].max=num[i].max+1;
pre[map[x][y]]=i;
}
else if(num[i].max+1==num[map[x][y]].max&&i<pre[map[x][y]])
pre[map[x][y]]=i;
}
}
if(MAX<=num[i].max)
{
MAX=num[i].max;
sign=i;
}
}
如果你能接受這個
3160K 1047MS C++ 1547B
真的很煩,居然1047ms一般都是200ms左右我居然這么多,暈
思路還是最長上升子序列
不過更新路徑的函數(shù)代碼如下
int cmp(int a,int b)
{
if(pre[a]==a)
{
if(a>b)return 1;
else if(a==b)return 0;
else return -1;
}
else
{
int t=cmp(pre[a],pre[b]);
if(t==0)
{
if(a>b)return 1;
else if(a==b)return 0;
else return -1;
}
else return t;
}
}
********************************
即如果路徑長度相同的話,就執(zhí)行cmp從而判斷字典序!更新字典序!很浪費時間!
********************************
有意討論電腦知識及 算法和 語言類網(wǎng)絡(luò)類 知識的人 可以入群 75126876
請問這個stack的實現(xiàn)的bfs效率怎么樣啊。。。