G. New Year and Original Order time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Let S(n) denote the number that represents the digits of n in sorted order. For example, S(1) = 1, S(5) = 5, …
D. New Year and Arbitrary Arrangement 分析 \(dp[i][j]\) 表示已有 \(i\) 个 \(a\) 和 \(j\) 个 \(ab\) 的情况下继续构造能得到的 \(ab\) 个数的期望. 考虑 DFS 记忆化搜索. 有两个要注意的地方: 令 \(p_a\) 为添加 \(a\) 的概率,\(p_b\) 为添加 \(b\) 的概率. 当 \(i + j \geq k\) 时,这个情况下添加一个 \(b\) 构造就停止了,但是在这个 \(b\) 之前显然可…
A - New Year and Counting Cards #pragma comment(linker, "/STACK:102400000,102400000") #include<stdio.h> #include<string.h> #include<stdlib.h> #include<vector> #include<algorithm> #include<iostream> #include<…
Good Bye 2017 A New Year and Counting Cards 题目链接: http://codeforces.com/contest/908/problem/A 思路: 如果卡片上面是数字,如果是奇数,就需要检查一下.如果是字母,如果是原音字母,需要检查一下. 代码: #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1504; int main()…
[CF908G]New Year and Original Order(动态规划) 题面 洛谷 CF 题解 设\(f[i][j][k][0/1]\)表示当前填到了第\(i\)位,有\(j\)个大于等于\(k\)的数,是否卡到上界的方案数. 这个东西算完之后,等价于默认排好序了. 看起来可以枚举每个数字出现在第几位了. 然而实际上不知道这个数字的出现次数,所以不能按照\(10^j*k\)这样子计算贡献. 怎么办呢,假设前面有\(j\)个数大于\(k\)的数,那么就产生\(\sum_{i=0}^{j…
[CF908G]New Year and Original Order 题意:令S(i)表示将i中所有数位上的数拿出来,从小到大排序后组成一个新的数的值.如S(50394)=3459.求$\sum\limits_{i=1}^nS(i)$. $n\le 10^{700}$. 题解:比较难的数位DP.我们考虑分别计算每个数字的贡献.令f0[i][a][b]表示考虑到第i位数,其中数字a的最高为是b的数的数量,再令f1[i][a][b]表示a这个数的贡献.再设g0,g1表示小于等于n的所有数的DP值.…
[CF908G]New Year and Original Order 题面 洛谷 题解 设\(f[i][j][k][l]\)表示当前在第\(i\)位有\(j\)位大于等于\(k\),当前有没有卡上界的方案数 则枚举新加的数\(p\),有 \[ f[i+1][j+(p\geq k)][k][l|(p<a_i)]=\sum f[i][j][k][l] \] 我们最后统计答案的时候枚举\(k\) 有 \[ ans=\underbrace{111...11}_{j个1}*(f[i][j][k][0]+…
2017年过去了,过去一年经历了太多,改变了好多好多,可以说人生进入了另一个阶段,有可能是成熟吧. 回顾2017 去年换了新工作,离开了将近工作了8年的公司,不带走一丝云彩,为其任劳任怨,最后没有任何留恋,真的很失败,一晃已经中年,但我不放弃,我决心改变自己 减肥 从大病之后体重一直在200左右,不高不低,指标也不是很正常,这次换了新的公司,新公司做健康的,索性开始减肥吧. 早餐代餐奶昔(公司福利),午餐照吃,不过尽量自己带饭,晚餐也在家吃,随后晚上9点开始锻炼,刚开始跑步,但后来腰不太舒服,改…
先按照绿点进行分块 第一个绿点和最后一个绿点之后很好处理不说了 两个绿点之间的讨论: 有两种方案 1:红(蓝)点和绿点顺序连接,距离为相邻绿点距离(也就是双倍绿点距离) 2:红(蓝)点和绿点的点阵中寻找最大的距离边,不连这一条,其他都顺序连,当然这样不连通,最后再绿点连接.(一个绿点距离+红(蓝)点阵处理 可以看到样例就是这样做的) #include<iostream> #include<map> #include<iostream> #include<cstri…
9815人数场,9500+围观神仙打架...断断续续打Codeforces也快有一年啦,第一次打Good Bye场,满怀前排膜tourist的心愿参加了这场送命场,虽然没看到tourist.不过还是得见Petr粑粑.杜教 AK.哇,不是很懂你们div1.... 啊,不过还是很休闲,暴力写了份897行的代码TwT. Flag:明年这个时候我要上紫!!!…