levOJ
林铱眀
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
P1473 埃及分数
P1473思路M=k*N+reminder.(remider=M%N) => N/m>1/(1+k). => 不超过N/M的最大分数是1/(k+1).N/M-1/(1+k)=(N*(1+k)-m)/(m*(1+k)).循环上述操作,直到 k<1 或者 n==1.#include <bits/stdc++.h>typedef long long ll;#define debug(a) cout<<#a<<"="<<a&原创 2022-05-11 00:34:10 · 1406 阅读 · 1 评论 -
P1685 飞跃悬崖
P1685 飞跃悬崖想了半天终于出来了,加深了我对dp的理解。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e1+6;#define qwe(i,a,b) for(int i=a;i<=b;i++)ll n,a[3][3],b[3][3];int main(){ while (cin>>n) { ll ans=0;原创 2022-05-05 23:33:12 · 280 阅读 · 0 评论 -
P1401 矩阵连乘问题
P1401 矩阵连乘问题注意k的分段枚举。(区间dp真是太好玩啦#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e3+6;struct sq{ int r,c;}s[maxn];ll a[maxn],dp[maxn][maxn];int main(int argc, char const *argv[]) { int n; while (sc原创 2022-05-05 23:30:57 · 1089 阅读 · 0 评论 -
P1430 油桶问题【状压、递归】
状态压缩就是把状态用一个数字的二进制表示出来。1表示拿,0表示不拿,枚举每一个状态,计算所能获得的油量。复杂度为O(2n),n超过20基本上不好用了,复杂度较高。详情见代码注释。ACcode:递归每一桶油有拿和不拿两种情况。以下代码较简洁,逻辑运算符可短路运算,可以减少递归次数。Other Solution:......原创 2022-05-05 23:29:54 · 488 阅读 · 0 评论 -
P1220 皇后摆放问题
P1220 皇后摆放问题槽点:要写成i=x#include <bits/stdc++.h>using namespace std;const int maxn=10;int a[maxn][maxn],row[maxn],col[maxn],rp[2*maxn],rd[2*maxn],cnt,ans;void dfs(int x,int y) { if(cnt==8){ ans++; } int i,j; for(i=x;i<8;i++){ if(row[i])原创 2022-05-05 23:25:47 · 408 阅读 · 0 评论 -
P1134 高精度阶乘
P1134 高精度阶乘滚动数组。#include <bits/stdc++.h>using namespace std;int main (){ int n; while (cin>>n) { int a[10000]={0},b[10000]={0},c[10000]={0}; b[0]=1; int lc=1; for(int k=1;k<=n;k++){ int p=k,cnt=0; while (p) { a[cnt++原创 2022-05-05 23:23:59 · 214 阅读 · 0 评论 -
P1121 大整数减法
P1121 大整数减法思路高精度减法#include <bits/stdc++.h>using namespace std;const int maxn=206;int n[maxn],m[maxn],ans[maxn];int main(int argc, char const *argv[]) { string a,b; while (cin>>a>>b) { for(int i=0;i<maxn;i++) ans原创 2022-05-05 23:18:22 · 478 阅读 · 0 评论 -
P1120 大整数加法
P1120 大整数加法思路高精度加法#include <bits/stdc++.h>using namespace std;const int maxn=206;int n[maxn],m[maxn],ans[maxn];int main(int argc, char const *argv[]) { char a[maxn],b[maxn]; while (cin>>a>>b) { for(int i=0;i<max原创 2022-05-05 23:16:57 · 361 阅读 · 0 评论 -
P1344 最长回文长度
P1344 最长回文长度 levOJ思路区间动归#include <bits/stdc++.h>using namespace std;const int maxn=1006;int a[maxn][maxn];int main(int argc, char const *argv[]) { char s[maxn]; while (cin>>s) { int len=strlen(s); for(int i=0;i&l原创 2022-05-05 23:13:44 · 561 阅读 · 0 评论
分享