【贪心】【P5078】Tweetuzki 爱军训】的更多相关文章

题目连接 很明显,1e6的范围,要么nlgn要么O(n) nlgn的话可能会想到借助一些数据结构,我并没有想到这种做法 对于这种题,O(n)的做法要么是线性递推,要么就应该是贪心了 考虑这道题我们怎么贪心 如果可以走无数个来回的话,那很明显我们可以从小到大依次取出,一定是最大的 可惜只能走一个来回 那么我们来看看只能走一个来回的话,有什么特性 对于第i个同学,要么是去的时候取出,要么是回来的时候取出,我们来考虑一下这有什么区别 当第i个同学为从去的时候取出变为回来的时候取出,多做的贡献就是排名差…
Description Tweetuzki 所在的班级有 \(n\) 名学生,座号从 \(1\) 到 \(n\).有一次,教官命令班上的 \(n\) 名学生按照座号顺序从左到右排成一排站好军姿,其中 \(1\) 号学生在最左边,\(n\) 号学生在最右边. 由于同学们站了很久,怨声载道,仁慈的教官又不希望大家一起解散导致混乱的局面,于是想了一个办法:教官从最左边--也就是 \(1\) 号学生身旁出发,走到 \(n\) 号学生右边后,再折返回到 \(1\) 号同学旁边.在教官在从 \(1\) 号同…
Description Tweetuzki 有一个长度为 \(n\) 的序列 \(a_1~,~a_2~,~\dots~,a_n\). 他希望找出一个最大的 \(k\),满足在原序列中存在一些数 \(b_1~,~b_2~,~\dots~,b_n\) (可打散在原序列中的顺序),满足 \(\forall~i~\in~[1,k)~,~b_i~\div~3~=~b~_{i+1}\)(这时 \(b_i\) 必须能够被 \(3\) 整除)或 \(b_i~\times~2~=~b_{i+1}\).并输出这个序…
Description Tweetuzki 特别喜欢等差数列.尤其是公差为 \(1\) 且全为正整数的等差数列. 显然,对于每一个数 \(s\),都能找到一个对应的公差为 \(1\) 且全为正整数的等差数列各项之和为 \(s\).这时,Tweetuzki 想知道,满足这样条件的等差数列,最小的首项是多少. 由于 Tweetuzki 的数学非常差,尤其是因式分解,所以请你告诉他结果. Input 输入仅包含一行一个整数 \(s\) Output 输出一行两个用空格隔开的整数代表首项和末项 Hint…
题目链接 思路 数学题 首先列出等差数列求和的式子. \[S = \frac{(n + m)(n - m + 1)}{2}(n为末项,m为首项)\] \[S * 2= (n + m)(n - m + 1)\] 若想让m更小,那么肯定要让等差数列中数字的数目更多.也就是让\((n - m + 1)\)更大,而\((n - m + 1)\)肯定是\(S * 2\)的因子.所以枚举一下\((n - m + 1)\) 假设\((n - m + 1) = x\) 则\(n = x + m - 1\).然后…
Description Input 第一行两个正整数 \(r~,~c\),表示矩阵的行数和列数. 接下来 \(r\) 行,每行输入 \(c\) 个字符,用空格隔开,保证只含有 . 和 # 两种字符.输入矩阵保证合法且一定含有隐藏数字. Output 输出仅包含一行一个只含数字的字符串,按照顺序输出这个矩阵中隐藏的数字. Hint \(1~\leq~r~\leq~10~,~1~\leq~c~\leq~10^5\) Solution 写完这篇题解整场比赛的题解我就全写了qwq到底谁是出题人啊喂(逃…
Description 对于一个数 \(k\),找到任意一个 \(x\),满足 \(0~\leq~k~\leq~x~\leq~10^{18}\) 且对于任意一个 \(x\) 进制数,把该数字各数位上的数字相加,最后得出的值若可以被 \(k\) 整除,则该数可以被 \(k\) 整除. Input 输入仅包含一行一个整数 \(k\) Output 输出一行一个整数代表任意一个符合要求的答案 Hint \(2~\leq~k~\leq~10^9\) Solution 考虑题目中给出的例子,各个位上的数加…
题目大意 给出一些数,需要求出 \(\frac{a_{i+1}}{3}=a_i\) 或 \(a_{i+1}=2 \times a_i\) 时最长的序列 \(a\). 分析 可以发现符合条件的序列 \(a\) 中不会出现重复的数字,而且对于一个数它的下一个位置最多只有两种情况,于是问题就变成了无环有向图最长链,这样就可以想到记忆化搜索,\(f_i\) 表示 \(i\) 为起点时的最长链长度,为了记录下路径,所以还需要用一个 \(nxt_i\) 表示 \(i\) 的下一个位置时什么,最后直接输出就好…
笔者休息娱乐.贪心即可,爱怎么暴力怎么暴力.莽WA,改了几下算法发现是输出中二了-- int T, color[26], tot; bool adj[26][26]; string s; void get(int cur) { set<int> s; rep(i, 0, T - 1) if (adj[cur][i] && color[i]) s.insert(color[i]); rep(i, 1, 26) if (s.find(i) == s.end()) { color[c…
Day 1 理论上,我现在不应该坐在电脑前打字,因为早在今天上午 6:20 全体新高一同学就坐车前往军(无)训(尽)基(炼)地(狱)了,而今天上午 6:20 我还在被窝里呢…… 没错,我旷掉了军训,然而不幸的是还得写“军训日记”,所以我便在博客上出版这一期文章,记下这几天的回忆和感受,做个念想. 早上急急忙忙赶到学校,老师为我确定目标,就上 BZOJ 和 POJ 上刷了几道水题,不在话下.在这里,值得讲的不是做了哪些题,也不是如何做的这些题,更不是那种枯燥无味的调试过程,(强行凑字...)我想讲…