- 博客(15)
- 资源 (3)
- 收藏
- 关注
原创 L2-002. 链表去重
//使用链表实现//c++链表去重问题,当前元素的前一个元素和尾指针指向当前元素,遍历结束条件为!=-1//本题注意tail=-1 就是设置尾节点的结束#include<iostream>#include<cstdio>#include<cstring> #include<cmath>using namespace std;int S,N;const int maxn=1e6+10;
2017-03-25 01:57:55 361
原创 L1-032. Left-pad
#include<iostream>#include<set>#include<map> #include<cstring>#include<functional>#include<sstream> #include<vector>#include<algorithm> using namespace std;int main(){ int N; char a;
2017-03-24 21:49:43 514
原创 L1-028. 判断素数
#include<iostream>#include<set>#include<cstring>#include<functional>#include<sstream> #include<vector>#include<algorithm> using namespace std;//素数筛法,此外判断素数2 3 5可以判断30以内的所有非素数(1除外i%sushu==0&&i/s
2017-03-24 21:39:40 266
原创 ccccleve_1总结 注意理解题意
//L1-019. 谁先倒//这道题把题目理解成两个都输那么两个都喝了,其实那时候连个不算继续//L1-025. 正整数A+B//这道题忽略了用string去cin B但是B有空格的,没想到这个时候B就不合格了
2017-03-24 21:33:35 237
原创 L1-013. 计算阶乘和
#include<iostream>#include<set>#include<vector>#include<algorithm>#include<cmath>#include<cstring>using namespace std;int mp[200];//打表typedef unsigned long long ll;ll vp[20];ll cal(ll a){
2017-03-24 21:25:49 255
原创 L1-009. N个数求和
#include<iostream>#include<cstdio>using namespace std;//数学//扩展欧几里得求最小公倍数最大公约数typedef long long ll;void gcd(ll a,ll b,ll& d,ll&x,ll&y){ if(!b) d=a,x=1,y=0; else{ gcd(b,a%b,
2017-03-24 21:23:46 179
原创 L1-006. 连续因子
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<vector>#include<queue>#include<deque>#include<set>#include<map>using namespace std;//动态规划//n%i==
2017-03-24 21:20:37 243
原创 L2-001. 紧急救援
#include<iostream>#include<cstring>#include<cstdio>#include<queue>#include<map>using namespace std;//最短路条件下保证路径上节点的权和最大并且保存路径 const int maxn=500+5;#define INF 0x3f3f3f3fint N,M,S,E; int team[
2017-03-24 21:17:19 191
原创 区间DP-最优矩阵链乘
状态:dp[i][i+k]表示i到i+k区间最优解转移:d[i][i+k]=min(d[i][i+k],d[i][j]+d[j+1][i+k]+a[i-1]*a[j]*a[i+k]);//解释为j划分区间i到i+k,划分代价为a[i-1]*a[j]*a[i+k]#include<iostream>#include<cstring>#include<cstdio>#include<algor
2017-03-06 19:22:14 297
原创 最长公共子序列
状态:dp[i][j]表示字符串A的第i位和B的第j位之前的最大公共子序列转移:dp[i][j]=(s1[i]==s2[j])?dp[i-1][j-1]+1:max(dp[i-1][j],dp[i][j-1]);//解释就是对于A的某一位i,遍历B的所有字符,如果相等,则dp[i-1][j-1]+1;//如果不等,就是max(dp[i-1][j],dp[i][j-1]);//最长公共子序列
2017-03-06 13:16:38 160
原创 最大连续和
dp[i] 表示以i结尾的最大连续和=状态dp[i]=dp[i-1]<0?a[i]:dp[i-1]+a[i]=状态转移方程//最大连续和#include<iostream> #include<cstdio>#include<algorithm>using namespace std;const int maxn=10000;int a[maxn];int dp[maxn];int
2017-03-04 08:46:01 179
原创 最大上升子序列
dp[i]表示以i元素结尾的最大上升子序列的元素个数=状态dp[i]=max(dp[i],dp[j]|j<i&&a[j]<a[i])=状态转移方程//解释就是找i前面的最大的dp[j]并且j元素小于i元素//模板 for(int i=1;i<=T;i++){ dp[i]=1; for(int j=i-1;j>0;j--) if(a[
2017-03-04 08:37:10 239
原创 最小费用流-uva1658
//过了样例但不知道能不能A,Uva崩了//最小费用流+拆点 #include<iostream>#include<cmath>#include<cstdio>#include<cstring>#include<queue>using namespace std;#define ll long long#define INF 0x3f3f3f3fconst int maxn=30
2017-03-03 17:13:00 350
原创 最大流-UVA - 753
//TLE的代码#include<iostream>#include<cstdio>#include<queue>#include<cstring> #include<vector> using namespace std;const int maxn=1e3+5;struct Edge{ int from,to,cap,flow; Edge(int a,int b,
2017-03-03 10:30:28 222
原创 Floyd有向图的传递闭包-UVA - 247
//有向图的传递闭包#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<vector>#include<set>#include<map>#include<algorithm>using namespace std;vector<string> vt;map<string,int>
2017-03-01 16:53:17 457
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人