分析:暴力挺好打的,對於前30%的資料神搜,hi相同的資料將所有的建築按照c從小到大排序,看最多能跳多少,ci=0的資料將所有的建築按照h從小到大排序,列舉起點和終點,看能否跳這麼多,取個max就可以了.這樣70分就到手了.
部分分的提示還是比較明顯的,要消除乙個引數的影響,那麼就按照h從小到大排序,顯然只有可能順著跳過城市,不能跳過去又跳回來.那麼就是乙個比較簡單的dp了:f[i][j]表示跳了i次,最後一次跳到j的最小花費,轉移的話列舉j之前的k就能轉移了,最後倒敘列舉i看哪乙個f[i][j]<=t就可以了.
多個引數有影響的常見策略是消除乙個引數的影響,常見的辦法就是排序,如果乙個點不能經過多次,那麼就想乙個辦法讓它強行不經過這個點.
暴力:
#include #include正解:#include
#include
#include
using
namespace
std;
int n, t, ans, vis[1010
];bool flag1 = true, flag2 = true
;struct
node
e[55
];bool
cmp1(node a, node b)
bool
cmp2(node a, node b)
void dfs(int u, int sum,int
tot)
}}int
main()
for (int i = 1; i <= n; i++)
scanf("%d
", &t);
if (n <= 5 || (!flag1 && !flag2))
printf(
"%d\n
", ans);
}else
if(flag1)
printf(
"%d\n
", ans - 1
); }
else
ans = max(ans, j - i + 1
); }
printf(
"%d\n
", ans - 1
); }
return0;
}
#include #include#include
#include
#include
using
namespace
std;
intn,t;
int f[60][60
];struct
node
e[60
];bool
cmp(node a, node b)
intmain()
printf(
"0\n");
return0;
}
NOIP2016複賽模擬賽2 遭遇戰
問題描述 有一n n矩陣,左上角為 0,0 右下角為 n 1,n 1 有兩個人,給出初始位置及方向,速度相同,兩人都不會走自己走過的路,當兩人向乙個方向前進時會一直走到不能走為止,若不能走,玩家a會右轉,玩家b會左轉,若完全不能動時則停止,問兩人相遇的座標 不能相遇則輸出 1 輸入 第一行t,表示t...
noip模擬賽 密碼
表示沒看懂演算法3 問題描述 有壓迫,就有反抗。mored的寵物在法庭的幫助下終於反抗了。作為乙隻聰明的寵物,他打算把魔法使mored的魔法書盜去,奪取mored的魔法能力。但mored怎麼會讓自己的魔法書輕易地被盜取?mored在魔法書上設定了乙個密碼鎖,密碼鎖上有乙個問題。施以斯臥鋪魔法吧,你有...
NOIP模擬賽 老師
題目描述 一座有n層的教學樓裡有一些學生,第i 0 i n 層有studentsi個學生。你被給定了乙個數k,如果第i層有x個學生,那麼這一層需要 x k 個老師。你可以調整每個學生的樓層,但是每個學生至多只能調整一層,就是說第i層的學生只能去第i 1層 如果有的話 第i層 第i 1層 如果i 1 ...