
ural
文章平均质量分 65
允雨琉
永远的萌新
展开
-
ural1010 Discrete Function
不难发现倾角最大的肯定是相邻两点。#include using namespace std;typedef long long LL;const int N = 100005;LL a[N];int main() { int n; scanf("%d", &n); for (int i = 1; i <= n; i++) scanf("%lld", &a[i])原创 2017-02-24 00:50:30 · 293 阅读 · 0 评论 -
ural1009 K-based Numbers (递推)
设f[i][0]表示取了i个数最前面的数为0的合法数的数量,f[i][1]表示取了i个数最前面的数不为0的合法数的数量则f[i][0] = f[i - 1][1]f[i][1] = (k - 1) * (f[i - 1][0] + f[i - 1][1])边界条件f[1][0] = 1f[1][1] = k - 1(代码中习惯性地使用dp作为数组名,不用在意)#原创 2017-02-23 20:54:09 · 294 阅读 · 0 评论 -
ural1005 Stone Pile (枚举)
枚举n个石头的状态(即分在左还是右),然后找到答案最小的状态。#include using namespace std;int a[25];int main() { int n; scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d", &a[i]); int ans = 0x3f3f3f3f;原创 2017-02-22 22:58:05 · 398 阅读 · 0 评论 -
ural1017 Staircases (动态规划)
设dp[i][j]表示使用i个砖块,最后一个台阶的方块数量为j的不同方案数(先不考虑条件Every staircase consists of at least two steps)那么状态转移方程即为dp[i][j] = ∑dp[i-j][k] (0 最后考虑每个楼梯都必须包含至少两层,这时只需要最终答案减1便可#include using namespace std;typ原创 2017-02-22 19:59:06 · 744 阅读 · 0 评论 -
ural1000 A+B Problem
#include using namespace std;int main() { int a, b; scanf("%d%d", &a, &b); printf("%d\n", a + b); return 0;}原创 2017-02-17 16:01:42 · 247 阅读 · 0 评论 -
ural1001 Reverse Root (递归)
读入时可以直接使用long long的读入,会自动跳过空格由于输出是反方向的,这时我们便可以利用递归的特性来输出#include using namespace std;void Read() { long long x; if (scanf("%lld", &x) != EOF) { Read(); printf("%.4f\n",原创 2017-02-17 16:05:12 · 309 阅读 · 0 评论 -
ural1028 Stars (树状数组)
因为数据中的y坐标已经是安照升序排序,所以可以完全不用考虑y,只考虑x。由于之前的y坐标都小于等于当前的,后面的肯定也不会等级比当前点低,所以我们只需要统计之前的点中x坐标小于等于当前点的有多少个,这种的话,可以很容易想到使用树状数组来维护。#include using namespace std;const int N = 320005;int sum[N], ans[N];in原创 2017-02-22 17:14:08 · 664 阅读 · 0 评论 -
ural1014 Product of Digits (枚举)
从9到2对原来的数进行试除,除完之后若不等于1,则无解,否则将之前的试除出来的因子从小到大输出。特殊情况:0的时候为10,1的时候为1。#include using namespace std;int a[100];int m;int main() { int n; scanf("%d", &n); if (n == 0) { printf("10\原创 2017-02-22 19:15:46 · 190 阅读 · 0 评论 -
ural1007 Code Words (字符串处理)
三种情况分别对应m n。然后对每一位进行枚举判断即可。有几个地方要注意一下:1. 对于n = m的情况,只能将1改为0,而不能将0改为1。2. 数据中字符串的数目并不是n。3. 可能原字符串就是正确答案(样例中已经包含了这种情况)。#include using namespace std;char s[3010], ss[3010];bool IsOk(char *s,原创 2017-02-26 15:24:32 · 332 阅读 · 0 评论