- 博客(7)
- 收藏
- 关注
原创 51nod 1580 铺管道
分三种情况讨论:1.直线2.折一次的折线3.折2次的折线有点麻烦的题//#include#include#includeusing namespace std;const int MAXN=2020;char mp[MAXN][MAXN];int dp[4][MAXN][MAXN],cdp[2][MAXN][MAXN];int main(){ long lon
2017-06-27 22:34:47 250
原创 51nod 1574 排列转换
求出每一位,移到正确位置,所需的代价和。由于是交换,代价和除以2。要用long long#includeusing namespace std;const int MAXN=200200;long long pos[MAXN];int main(){ long long n,i,ans,x; while(~scanf("%lld",&n)) { ans=0; f
2017-06-26 19:20:14 345
原创 51nod 1875 丢手绢
预处理打表#includeusing namespace std;int main(){ long long i,j,k,kk,g,ans[20],tmp,flag,last,used[30],now; for(i=1;i<=13;i++) { ans[i]=i+1; for(;;) { now=1; flag=1; memset(used,0,si
2017-06-26 16:07:50 225
原创 51nod 1873 初中的算术
#includeusing namespace std;string multi(string a,string b){ int i,j,arr[200],len=a.length()+b.length(); memset(arr,0,sizeof(arr)); reverse(a.begin(),a.end()); reverse(b.begin(),b.end()); for
2017-06-26 14:13:41 886
原创 51nod 2006 飞行员配对(二分图最大匹配)
裸题#includeusing namespace std;int n,m,mp[505][505],match[505],used[505];bool find(int x){ int i,j; for(j=1;j<=m;j++) { if(mp[x][j] && used[j]==0) { used[j]=1; if(match[j]==-1||fin
2017-06-26 13:44:14 520
原创 51nod 1557 两个集合
开2倍n的并查集。其中,i所在的并查集与i+n所在的并查集,分别表示与数字p[i]所在的集合,以及数字p[i]所不在的集合。也就是说,在正常情况下,i所在的并查集与i+n所在的并查集,不是同一个并查集。利用map,对于每一个p[i],查找a-p[i]以及b-p[i]的元素下标i1和i2根据查找情况,分别对i以及i+n进行并查操作。若找到i1和i2,且都不为i,则代表,a-p[i]与
2017-06-17 22:26:30 267
原创 51nod 1572 宝岛地图
预处理每个点,分别能往四个方向各走多少步。#includeusing namespace std;const int MAXN=1010;const int MAXM=100100;char mp[MAXN][MAXN];int dp[4][MAXN][MAXN];int chx[30],chy[30],suc[30];char dir[MAXM];int len[MAXM
2017-06-17 20:59:58 247
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人