對於k=100的情況,貪心
對於100%的資料
可以發現,當前的決策只對後面的開採有影響,且剩餘耐久度與之後的開採收益成正比,如果倒著考慮這個問題,得出i-n的星球1點耐久度所能獲得的最大收益,從後往前dp,得出最大值最後乘w就是答案
#include#includeusing namespace std;
const int maxn=100001;
int n,w,t[maxn],a[maxn];
double k,c,ans;
int main()
從前往後推出每個人最少/最多有幾個和第乙個人相同的勳章
然後看最後乙個最少是否是0即可
#includeinline int read()
while(ch >= '0' && ch <= '9')
return x*t;
}const int maxn = 20010;
int n;
int num[maxn];
int l,r,mid;
int dp[maxn],gun[maxn];
inline void init()
std::cout << l;
}int main(void)
30%: o(n ^ 2 * m)暴力判斷。
100%: 很顯然答案的可能性最多只有n 種,所以我們將所有人的答案按字典序排序後列舉
將每個人的答案作為正確答案來進行判斷。由於是判斷題,若當前人的答案為正確答
案則零分者的答案也就確定了,那麼只需統計出這兩種答案的人數判斷是否滿足題意
即可。這一步使用字串雜湊即可解決。
另外要注意p = 0 和p = q = 0 的情況。
#include #include #include #include #include using namespace std;
const int n = 3e4 + 2, m = 5e2 + 2, sed = 31, sed = 131, mod = 70177, mod = 92311;
int n, m, p, q, ans, hash[n], hash[n];
int top, info[mod], nxt[n * 2], fet[n * 2], cnt[n * 2];
struct node
} a[n];
inline void insert(const int &x, const int &y)
nxt[++top] = info[x]; info[x] = top;
fet[top] = y; cnt[top] = 1;
return ;
}inline int query(const int &x, const int &y)
inline void solve1()
hash[i] = tmp, hash[i] = tmp;
insert(tmp, tmp);
}for (int i = 0; i < n; ++i)
if (query(hash[i], hash[i]) == p)
if (query(tmp, tmp) == q)
}if (ans != -1) printf("%s\n", a[ans].s);
else puts("-1");
return ;
}char cur[m];
inline void solve2()
hash[i] = tmp, hash[i] = tmp;
insert(tmp, tmp);
}for (int i = n - 1; i >= 0; --i)
if (query(hash[i], hash[i]) == q)
if (query(tmp, tmp) == p)
}if (ans != -1)
else puts("-1");
return ;
}void solve3()
insert(tmp, tmp);
tmp = tmp = 0;
for (int j = 0; j < m; ++j)
insert(tmp, tmp);
}bool flag = true;
for (int i = 0; i < m; ++i) cur[i] = 'n';
do if (query(tmp, tmp) == 0)
flag = false;
for (int j = m - 1; j >= 0; --j)
if (cur[j] == 'y') cur[j] = 'n';
else
} while (flag);
if (flag) printf("%s\n", cur);
else puts("-1");
return ;
}int main()
2023年11月15日noip模擬賽
苟.1.謎題 5faq2.選修課 faq3.質數 首先考慮,質數 根號n的情況 我們考慮 根號n以內的質數所組成的最優方案吧。可以搜尋。大概 再考慮根號n以後的質數的方案 好難啊。不會寫啊 gg include include include include include include usin...
11月5日晚模擬賽題解
題意 n 個點,m 條邊,每個點有權值,每條邊也有權值 按讀入 times 2處理 對每個點,選定乙個目標點 可以是它自己 使這個點到達目標點的距離加上目標點的權值的和最小。1 n,m 2e5 解法 dijkstra 超級源點 這個資料範圍不允許我們跑 floyd 或者 n 次 dijkstra 但...
NOIP模擬賽 洛谷11月月賽
t1終於結束的起點 題解 列舉啊.斐波那契數 第46個爆int,第92個爆long long.發現結果一般是m的幾倍左右.不用擔心t。題解 貪心。從當前沒跳過的最高的和最低的之間來回跳。預計10分 include include include include define ll long long...