Atcoder
AKone123456
这个作者很懒,什么都没留下…
展开
-
E - Picking Goods----------------------------思维(dp)
题意:给定n*m的方格,给出k个(i,j)的ci权值 ,从(1,1)走到(n,m)的最大权值是多少限制条件:每行最多只能选3个解析:设f[i][j][0~3]:表示走到(i,j) 第i行选了0~3个的最大值从第i-1行选p个转移到第i行选p个f[i][j][p]=max(f[i][j][p],f[i-1][j][p])从第j-1列选p个转移到第j列选p个f[i][j][p]=max(f[i][j][p],f[i][j-1][p])从第j-1列选p-1个转移到第j列选p个f[i][...原创 2020-08-17 11:48:52 · 234 阅读 · 0 评论 -
D - Sum of Divisors-----------------------思维(数论+逆向思维+枚举因子个数)
题意:求出1~n中所有数的约数个数*i解析:想到求约数,但是O(nsqrt(n)) 超时了。所以我们要逆向去思考,我们可以枚举i的倍数,就可以确定每个数的因子个数有多少了时间复杂度:O(nlogn)#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e7+10;ll f[N];int n;int main(){ cin>>n; for(int i=...原创 2020-07-07 23:59:11 · 838 阅读 · 0 评论 -
D - Div Game-------------------------------思维(质因数分解)
解析:质因数分解由题意可知,N%z==0 && z=p^e p要是素数所以我们质因数分解NN=p0e0 * p1e1 * p2e2 *…*pnen对于p0e0 我们可以分解多少个不同的数呢。我们按照幂次e0分成1+2+3+…+x=e0;那么这样分的数都是不会相同的对于每个e,我只要这样计算累加起来即可#include<bits/stdc++.h>using namespace std;typedef long long ll;ll x;...原创 2020-06-05 16:22:23 · 259 阅读 · 0 评论