日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

20180525小测

發布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 20180525小测 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

T1:


簡述一下題意,就是每天給你預算和一個點,讓你用這個點到1的路徑上的點做完全背包,問最大收益。
點數詢問數<=5000,預算<=20000,時間限制1s,空間限制20Mb。
注意考試時是沒有給預算的正確數據范圍的,題意也不是很清晰,然后就棄療了......(題意不明怪我嘍)
考慮暴力怎么做,我們可以大力完全背包,時間空間復雜度都是O(ne)的。
可是顯然會MLE啊......
考慮用時間換空間(計算機比你想象的快到不知道哪里去了),如果我們能把空間復雜度的n優化為logn,時間復雜度再多個log也沒事啊。
我們可以?樹上cdq分治。
首先將詢問離線,把詢問全都放到點上。
考慮我們的分治結構,為樹上的一個子聯通塊,我們已知這個聯通塊最高點到根的背包值。然后如何處理?
我們找出塊重心,先遞歸包含最高點的部分。
然后暴力用重心到最高點的一條鏈上的權值和最高點的背包值求出重心的背包值,處理重心上的詢問。
最后枚舉重心的孩子,暴力處理出其背包值,然后遞歸計算。
時間復雜度O(nelogn),由于最多遞歸logn層,所以空間復雜度O(elogn)。
代碼:

1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<vector> 5 const int maxn=5e3+1e2,maxe=2e4+1e2; 6 const int inf=0x3f3f3f3f; 7 8 struct Query{ int siz,id; }; 9 int s[maxn],t[maxn<<1],nxt[maxn<<1],fa[maxn]; 10 int cst[maxn],val[maxn],f[17][maxe]; 11 int siz[maxn],mxs[maxn],ban[maxn]; 12 int ans[maxn]; 13 std::vector<Query> qs[maxn]; 14 15 inline void addedge(int from,int to) { 16 static int cnt; 17 t[++cnt] = to , nxt[cnt] = s[from] , s[from] = cnt; 18 } 19 inline void trans(int* dst,const int &cst,const int &val) { 20 for(int i=cst;i<maxe;i++) dst[i] = std::max( dst[i] , dst[i-cst] + val ); 21 } 22 23 inline void getrt(int pos,int fa,const int &fs,int &rt) { 24 siz[pos] = 1 , mxs[pos] = 0; 25 for(int at=s[pos];at;at=nxt[at]) if( t[at] != fa && !ban[t[at]] ) getrt(t[at],pos,fs,rt) , siz[pos] += siz[t[at]] , mxs[pos] = std::max( mxs[pos] , siz[t[at]] ); 26 if( ( mxs[pos] = std::max( mxs[pos] , fs - siz[pos]) ) < mxs[rt] ) rt = pos; 27 } 28 inline void solve(int pos,int fs,int dep) { // pos is the highest point in this block , assert we know dp[pos] in f[dep]. 29 if( fs == 1 ) { 30 for(unsigned i=0;i<qs[pos].size();i++) ans[qs[pos][i].id] = f[dep][qs[pos][i].siz]; 31 return void(ban[pos]=1); 32 } 33 int rt = 0; 34 *mxs = inf , getrt(pos,-1,fs,rt) , ban[rt] = 1; 35 if( rt != pos ) memcpy(f[dep+1],f[dep],sizeof(f[0])) , solve(pos,fs-siz[rt],dep+1); 36 for(int i=rt;i!=pos;i=fa[i]) trans(f[dep],cst[i],val[i]); 37 for(unsigned i=0;i<qs[rt].size();i++) ans[qs[rt][i].id] = f[dep][qs[rt][i].siz]; 38 for(int at=s[rt];at;at=nxt[at]) if( !ban[t[at]] ) memcpy(f[dep+1],f[dep],sizeof(f[0])) , trans(f[dep+1],cst[t[at]],val[t[at]]) , solve(t[at],siz[t[at]],dep+1); 39 } 40 41 int main() { 42 static int n,m; 43 scanf("%d%d",&n,&m); 44 for(int i=1;i<=n;i++) scanf("%d%d",cst+i,val+i); 45 for(int i=2;i<=n;i++) scanf("%d",fa+i) , addedge(fa[i],i) , addedge(i,fa[i]); 46 for(int i=1;i<=m;i++) scanf("%d",ans+i); 47 for(int i=1,pos;i<=m;i++) scanf("%d",&pos) , qs[pos].push_back((Query){ans[i],i}) , ans[i] = 0; 48 trans(f[1],cst[1],val[1]) , solve(1,n,1); 49 for(int i=1;i<=m;i++) printf("%d\n",ans[i]); 50 return 0; 51 } View Code


T2:


這都是什么東西啊......
考慮暴力,中間沒有特殊值的可以線段樹,前面的25分?n^2暴力吧,能不能過看臉了。
寫了,拍了,沒錯,感覺穩了。
然后評測下來發現只有10分!然后發現我賦值min和賦值max打反了,對拍的暴力的主函數是粘過去的,也是錯的......
于是身敗名裂。
這件事告訴我們對拍的暴力不要粘貼正解中除了頭文件、變量聲明和IO優化(如果有)以外的任何東西。因為你永遠不知道你會在哪里出錯。
正解棄坑啦!
10分代碼:

1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<tr1/unordered_set> 6 #define debug cerr 7 typedef long long int lli; 8 using namespace std; 9 10 int n,m; 11 12 namespace SubTask1 { 13 const int maxn=5e3+1e2; 14 const lli inf=0x3f3f3f3f3f3f3f3fll; 15 lli in[maxn]; 16 tr1::unordered_set<lli> ban; 17 18 inline void initban() { 19 lli cur = 23; 20 for(int i=1;i<=17;i++) cur = cur * 10 + 3 , ban.insert(cur); 21 } 22 inline void apply_add(int l,int r,const lli &x) { 23 for(int i=l;i<=r;i++) in[i] += x; 24 } 25 inline void apply_fil(int l,int r,const lli &x) { 26 for(int i=l;i<=r;i++) in[i] = x; 27 } 28 inline lli query_sum(int l,int r) { 29 lli ret = 0; 30 for(int i=l;i<=r;i++) ret += in[i]; 31 return ret; 32 } 33 inline lli query_mi(int l,int r) { 34 lli ret = inf; 35 for(int i=l;i<=r;i++) ret = min( ret , in[i] ); 36 return ret; 37 } 38 inline lli query_mx(int l,int r) { 39 lli ret = -inf; 40 for(int i=l;i<=r;i++) ret = max( ret , in[i] ); 41 return ret; 42 } 43 inline bool judge_ban(int l,int r) { 44 for(int i=l;i<=r;i++) if( ban.find(in[i]) != ban.end() ) return 1; 45 return 0; 46 } 47 void main() { 48 initban(); 49 for(int i=1;i<=n;i++) scanf("%lld",in+i); 50 for(int i=1,o,l,r,x;i<=m;i++) { 51 scanf("%d",&o); 52 if( o == 1 ) scanf("%d",&x) , printf("%lld\n",query_sum(x,x)); 53 else { 54 scanf("%d%d",&l,&r); 55 if( o == 2 || o == 3 ) { 56 scanf("%d",&x); 57 if( o == 2 ) apply_fil(l,r,x); 58 else if( o == 3 ) apply_add(l,r,x); 59 } else { 60 lli val; 61 if( o == 4 ) val = query_mi(l,r); 62 else if( o == 5 ) val = query_mx(l,r); 63 else if( o == 6 ) val = query_sum(l,r) / ( r - l + 1 ); 64 apply_fil(l,r,val); 65 } 66 if( o == 2 || o == 3 || o == 6 ) while( judge_ban(l,r) ) apply_add(l,r,1); 67 } 68 } 69 } 70 } 71 72 namespace SubTask2 { 73 const int maxn=1e5+1e2; 74 int in[maxn]; 75 struct SegmentTree { 76 int l[maxn<<2],r[maxn<<2],lson[maxn<<2],rson[maxn<<2],cnt; 77 lli lazy_add[maxn<<2],lazy_fil[maxn<<2],sum[maxn<<2],mi[maxn<<2],mx[maxn<<2]; 78 SegmentTree() { memset(lazy_fil,-1,sizeof(lazy_fil)) , cnt = 1; } 79 inline void apply_add(int pos,const lli &x) { 80 mi[pos] += x , mx[pos] += x , sum[pos] += x * ( r[pos] - l[pos] + 1 ); 81 if( ~lazy_fil[pos] ) lazy_fil[pos] += x; 82 else lazy_add[pos] += x; 83 } 84 inline void apply_fil(int pos,const lli &x) { 85 mi[pos] = mx[pos] = lazy_fil[pos] = x , sum[pos] = x * ( r[pos] - l[pos] + 1 ); 86 lazy_add[pos] = 0; 87 } 88 inline void push(int pos) { // two marks will not appear at the same time . 89 if( ~lazy_fil[pos] ) apply_fil(lson[pos],lazy_fil[pos]) , apply_fil(rson[pos],lazy_fil[pos]) , lazy_fil[pos] = -1; 90 if( lazy_add[pos] ) apply_add(lson[pos],lazy_add[pos]) , apply_add(rson[pos],lazy_add[pos]) , lazy_add[pos] = 0; 91 } 92 inline void maintain(int pos) { 93 sum[pos] = sum[lson[pos]] + sum[rson[pos]] , mi[pos] = min( mi[lson[pos]] , mi[rson[pos]] ) , mx[pos] = max( mx[lson[pos]] , mx[rson[pos]] ); 94 } 95 inline void build(int pos,int ll,int rr) { 96 if( ( l[pos] = ll ) == ( r[pos] = rr ) ) return void(sum[pos] = mi[pos] = mx[pos] = in[ll]); 97 const int mid = ( ll + rr ) >> 1; 98 build(lson[pos]=++cnt,ll,mid) , build(rson[pos]=++cnt,mid+1,rr) , maintain(pos); 99 } 100 inline void update_fil(int pos,const int &ll,const int &rr,const lli &x) { 101 if( rr < l[pos] || r[pos] < ll ) return; 102 if( ll <= l[pos] && r[pos] <= rr ) return apply_fil(pos,x); 103 push(pos) , update_fil(lson[pos],ll,rr,x) , update_fil(rson[pos],ll,rr,x) , maintain(pos); 104 } 105 inline void update_add(int pos,const int &ll,const int &rr,const lli &x) { 106 if( rr < l[pos] || r[pos] < ll ) return; 107 if( ll <= l[pos] && r[pos] <= rr ) return apply_add(pos,x); 108 push(pos) , update_add(lson[pos],ll,rr,x) , update_add(rson[pos],ll,rr,x) , maintain(pos); 109 } 110 inline lli query_mi(int pos,const int &ll,const int &rr) { 111 if( ll <= l[pos] && r[pos] <= rr ) return mi[pos]; 112 push(pos); const int mid = ( l[pos] + r[pos] ) >> 1; 113 if( rr <= mid ) return query_mi(lson[pos],ll,rr); 114 else if( ll > mid ) return query_mi(rson[pos],ll,rr); 115 else return min( query_mi(lson[pos],ll,rr) , query_mi(rson[pos],ll,rr) ); 116 } 117 inline lli query_mx(int pos,const int &ll,const int &rr) { 118 if( ll <= l[pos] && r[pos] <= rr ) return mx[pos]; 119 push(pos); const int mid = ( l[pos] + r[pos] ) >> 1; 120 if( rr <= mid ) return query_mx(lson[pos],ll,rr); 121 else if( ll > mid ) return query_mx(rson[pos],ll,rr); 122 else return max( query_mx(lson[pos],ll,rr) , query_mx(rson[pos],ll,rr) ); 123 } 124 inline lli query_sum(int pos,const int &ll,const int &rr) { 125 if( ll <= l[pos] && r[pos] <= rr ) return sum[pos]; 126 push(pos); const int mid = ( l[pos] + r[pos] ) >> 1; 127 if( rr <= mid ) return query_sum(lson[pos],ll,rr); 128 else if( ll > mid ) return query_sum(rson[pos],ll,rr); 129 else return query_sum(lson[pos],ll,rr) + query_sum(rson[pos],ll,rr); 130 } 131 }sgt; 132 void main() { 133 for(int i=1;i<=n;i++) scanf("%d",in+i); 134 sgt.build(1,1,n); 135 for(int i=1,o,l,r,x;i<=m;i++) { 136 scanf("%d",&o); 137 if( o == 1 ) scanf("%d",&x) , printf("%lld\n",sgt.query_sum(1,x,x)); 138 else { 139 scanf("%d%d",&l,&r); 140 if( o == 2 || o == 3 ) { 141 scanf("%d",&x); 142 if( o == 2 ) sgt.update_fil(1,l,r,x); 143 else sgt.update_add(1,l,r,x); 144 } else { 145 lli val; 146 if( o == 4 ) val = sgt.query_mi(1,l,r); 147 else if( o == 5 ) val = sgt.query_mx(1,l,r); 148 else if( o == 6 ) val = sgt.query_sum(1,l,r) / ( r - l + 1 ); 149 sgt.update_fil(1,l,r,val); 150 } 151 } 152 } 153 } 154 } 155 156 int main() { 157 scanf("%d%d",&n,&m); 158 if( n <= 4000 && m <= 4000 ) SubTask1::main(); 159 else SubTask2::main(); 160 return 0; 161 } View Code

50分暴力代碼:

1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<tr1/unordered_set> 6 #define debug cerr 7 typedef long long int lli; 8 using namespace std; 9 10 int n,m; 11 12 namespace SubTask1 { 13 const int maxn=5e3+1e2; 14 const lli inf=0x3f3f3f3f3f3f3f3fll; 15 lli in[maxn]; 16 tr1::unordered_set<lli> ban; 17 18 inline void initban() { 19 lli cur = 23; 20 for(int i=1;i<=17;i++) cur = cur * 10 + 3 , ban.insert(cur); 21 } 22 inline void apply_add(int l,int r,const lli &x) { 23 for(int i=l;i<=r;i++) in[i] += x; 24 } 25 inline void apply_fil(int l,int r,const lli &x) { 26 for(int i=l;i<=r;i++) in[i] = x; 27 } 28 inline lli query_sum(int l,int r) { 29 lli ret = 0; 30 for(int i=l;i<=r;i++) ret += in[i]; 31 return ret; 32 } 33 inline lli query_mi(int l,int r) { 34 lli ret = inf; 35 for(int i=l;i<=r;i++) ret = min( ret , in[i] ); 36 return ret; 37 } 38 inline lli query_mx(int l,int r) { 39 lli ret = -inf; 40 for(int i=l;i<=r;i++) ret = max( ret , in[i] ); 41 return ret; 42 } 43 inline bool judge_ban(int l,int r) { 44 for(int i=l;i<=r;i++) if( ban.find(in[i]) != ban.end() ) return 1; 45 return 0; 46 } 47 void main() { 48 initban(); 49 for(int i=1;i<=n;i++) scanf("%lld",in+i); 50 for(int i=1,o,l,r,x;i<=m;i++) { 51 scanf("%d",&o); 52 if( o == 1 ) scanf("%d",&x) , printf("%lld\n",query_sum(x,x)); 53 else { 54 scanf("%d%d",&l,&r); 55 if( o == 2 || o == 3 ) { 56 scanf("%d",&x); 57 if( o == 2 ) apply_fil(l,r,x); 58 else if( o == 3 ) apply_add(l,r,x); 59 } else { 60 lli val; 61 if( o == 4 ) val = query_mx(l,r); 62 else if( o == 5 ) val = query_mi(l,r); 63 else if( o == 6 ) val = query_sum(l,r) / ( r - l + 1 ); 64 apply_fil(l,r,val); 65 } 66 if( o == 2 || o == 3 || o == 6 ) while( judge_ban(l,r) ) apply_add(l,r,1); 67 } 68 } 69 } 70 } 71 72 namespace SubTask2 { 73 const int maxn=1e5+1e2; 74 int in[maxn]; 75 struct SegmentTree { 76 int l[maxn<<2],r[maxn<<2],lson[maxn<<2],rson[maxn<<2],cnt; 77 lli lazy_add[maxn<<2],lazy_fil[maxn<<2],sum[maxn<<2],mi[maxn<<2],mx[maxn<<2]; 78 SegmentTree() { memset(lazy_fil,-1,sizeof(lazy_fil)) , cnt = 1; } 79 inline void apply_add(int pos,const lli &x) { 80 mi[pos] += x , mx[pos] += x , sum[pos] += x * ( r[pos] - l[pos] + 1 ); 81 if( ~lazy_fil[pos] ) lazy_fil[pos] += x; 82 else lazy_add[pos] += x; 83 } 84 inline void apply_fil(int pos,const lli &x) { 85 mi[pos] = mx[pos] = lazy_fil[pos] = x , sum[pos] = x * ( r[pos] - l[pos] + 1 ); 86 lazy_add[pos] = 0; 87 } 88 inline void push(int pos) { // two marks will not appear at the same time . 89 if( ~lazy_fil[pos] ) apply_fil(lson[pos],lazy_fil[pos]) , apply_fil(rson[pos],lazy_fil[pos]) , lazy_fil[pos] = -1; 90 if( lazy_add[pos] ) apply_add(lson[pos],lazy_add[pos]) , apply_add(rson[pos],lazy_add[pos]) , lazy_add[pos] = 0; 91 } 92 inline void maintain(int pos) { 93 sum[pos] = sum[lson[pos]] + sum[rson[pos]] , mi[pos] = min( mi[lson[pos]] , mi[rson[pos]] ) , mx[pos] = max( mx[lson[pos]] , mx[rson[pos]] ); 94 } 95 inline void build(int pos,int ll,int rr) { 96 if( ( l[pos] = ll ) == ( r[pos] = rr ) ) return void(sum[pos] = mi[pos] = mx[pos] = in[ll]); 97 const int mid = ( ll + rr ) >> 1; 98 build(lson[pos]=++cnt,ll,mid) , build(rson[pos]=++cnt,mid+1,rr) , maintain(pos); 99 } 100 inline void update_fil(int pos,const int &ll,const int &rr,const lli &x) { 101 if( rr < l[pos] || r[pos] < ll ) return; 102 if( ll <= l[pos] && r[pos] <= rr ) return apply_fil(pos,x); 103 push(pos) , update_fil(lson[pos],ll,rr,x) , update_fil(rson[pos],ll,rr,x) , maintain(pos); 104 } 105 inline void update_add(int pos,const int &ll,const int &rr,const lli &x) { 106 if( rr < l[pos] || r[pos] < ll ) return; 107 if( ll <= l[pos] && r[pos] <= rr ) return apply_add(pos,x); 108 push(pos) , update_add(lson[pos],ll,rr,x) , update_add(rson[pos],ll,rr,x) , maintain(pos); 109 } 110 inline lli query_mi(int pos,const int &ll,const int &rr) { 111 if( ll <= l[pos] && r[pos] <= rr ) return mi[pos]; 112 push(pos); const int mid = ( l[pos] + r[pos] ) >> 1; 113 if( rr <= mid ) return query_mi(lson[pos],ll,rr); 114 else if( ll > mid ) return query_mi(rson[pos],ll,rr); 115 else return min( query_mi(lson[pos],ll,rr) , query_mi(rson[pos],ll,rr) ); 116 } 117 inline lli query_mx(int pos,const int &ll,const int &rr) { 118 if( ll <= l[pos] && r[pos] <= rr ) return mx[pos]; 119 push(pos); const int mid = ( l[pos] + r[pos] ) >> 1; 120 if( rr <= mid ) return query_mx(lson[pos],ll,rr); 121 else if( ll > mid ) return query_mx(rson[pos],ll,rr); 122 else return max( query_mx(lson[pos],ll,rr) , query_mx(rson[pos],ll,rr) ); 123 } 124 inline lli query_sum(int pos,const int &ll,const int &rr) { 125 if( ll <= l[pos] && r[pos] <= rr ) return sum[pos]; 126 push(pos); const int mid = ( l[pos] + r[pos] ) >> 1; 127 if( rr <= mid ) return query_sum(lson[pos],ll,rr); 128 else if( ll > mid ) return query_sum(rson[pos],ll,rr); 129 else return query_sum(lson[pos],ll,rr) + query_sum(rson[pos],ll,rr); 130 } 131 }sgt; 132 void main() { 133 for(int i=1;i<=n;i++) scanf("%d",in+i); 134 sgt.build(1,1,n); 135 for(int i=1,o,l,r,x;i<=m;i++) { 136 scanf("%d",&o); 137 if( o == 1 ) scanf("%d",&x) , printf("%lld\n",sgt.query_sum(1,x,x)); 138 else { 139 scanf("%d%d",&l,&r); 140 if( o == 2 || o == 3 ) { 141 scanf("%d",&x); 142 if( o == 2 ) sgt.update_fil(1,l,r,x); 143 else sgt.update_add(1,l,r,x); 144 } else { 145 lli val; 146 if( o == 4 ) val = sgt.query_mx(1,l,r); 147 else if( o == 5 ) val = sgt.query_mi(1,l,r); 148 else if( o == 6 ) val = sgt.query_sum(1,l,r) / ( r - l + 1 ); 149 sgt.update_fil(1,l,r,val); 150 } 151 } 152 } 153 } 154 } 155 156 int main() { 157 scanf("%d%d",&n,&m); 158 if( n <= 4000 && m <= 4000 ) SubTask1::main(); 159 else SubTask2::main(); 160 return 0; 161 } View Code

?


T3:

感覺這次考試唯一的一道好題......
題意就是要你造出一棵生成樹滿足權值最小,數據中所有數字非負。
什么為什么是樹?因為不是樹顯然不優啊。
這種提交答案題首先要觀察數據發現特殊性質,然后分類。
我分了如下幾類:

測試點0本來就是一棵樹,直接順序輸出即可。
代碼:

1 #include<bits/stdc++.h> 2 3 int main() { 4 int n,m; 5 scanf("%d%d",&n,&m); 6 for(int i=1;i<=m;i++) printf("%d\n",i); 7 return 0; 8 } View Code

測試點1最多有一個環,tarjan縮一發邊雙然后枚舉刪邊(然而數據其實是一個大環,所以只有一個邊雙)。
代碼:

1 #include<bits/stdc++.h> 2 #define debug cerr 3 typedef long long int lli; 4 using namespace std; 5 const int maxn=1e6+1e2; 6 7 map<lli,int> app; 8 int s[maxn],t[maxn<<1],nxt[maxn<<1]; 9 int dfn[maxn],low[maxn],stk[maxn],ins[maxn],vis[maxn],ban[maxn],top; // ban will be 1 if bridge . 10 lli val[maxn],col[maxn],su,cv=0x3f3f3f3f3f3f3f3f; 11 int n,m,ans; 12 13 inline void coredge(int from,int to) { 14 static int cnt = 1; 15 t[++cnt] = to , nxt[cnt] = s[from] , s[from] = cnt; 16 } 17 inline void addedge(int a,int b) { 18 coredge(a,b) , coredge(b,a); 19 } 20 21 inline void dfs(int pos,int fae) { 22 static int dd; 23 vis[pos] = 1 , low[pos] = dfn[pos] = ++dd; 24 for(int at=s[pos];at;at=nxt[at]) if( at != ( fae ^ 1 ) ) { 25 if( !vis[t[at]] ) { 26 dfs(t[at],at) , low[pos] = min( low[pos] , low[t[at]] ); 27 if( low[t[at]] > dfn[pos] ) ban[at>>1] = 1; 28 } else low[pos] = min( low[pos] , dfn[t[at]] ); 29 } 30 } 31 32 inline lli calc(int edg) { 33 lli cs = app.size() - ( app[col[edg]] == 1 ); 34 return ( su - val[edg] ) * cs; 35 } 36 37 int main() { 38 scanf("%d%d",&n,&m); 39 for(int i=1,a,b;i<=m;i++) scanf("%d%d%lld%d",&a,&b,val+i,col+i) , addedge(a,b) , ++app[col[i]] , su += val[i]; 40 dfs(1,0); 41 for(int i=1;i<=m;i++) { 42 if( !ban[i] && calc(i) <= cv ) cv = calc(i) , ans = i; 43 } 44 for(int i=1;i<=m;i++) if( i != ans ) printf("%d\n",i); 45 return 0; 46 } View Code

測試點2只有一種顏色,最接最小生成樹。
代碼:

1 #include<bits/stdc++.h> 2 typedef long long int lli; 3 using namespace std; 4 const int maxn=1e5+1e2,maxe=1e6+1e2; 5 6 int n,m; 7 lli ans; 8 9 struct Edge { 10 int u,v,id; 11 lli w; 12 friend bool operator < (const Edge &a,const Edge &b) { 13 return a.w < b.w; 14 } 15 }es[maxe]; 16 17 struct UnionFindSet { 18 int fa[maxn]; 19 inline int findfa(int x) { 20 return fa[x] == x ? x : fa[x] = findfa(fa[x]); 21 } 22 inline bool merge(int x,int y) { 23 x = findfa(x) , y = findfa(y); 24 return x == y ? 0 : fa[x] = y; 25 } 26 inline void init() { 27 for(int i=1;i<=n;i++) fa[i] = i; 28 } 29 }ufs; 30 31 int main() { 32 scanf("%d%d",&n,&m) , ufs.init(); 33 for(int i=1;i<=m;i++) scanf("%d%d%lld%*d",&es[i].u,&es[i].v,&es[i].w) , es[i].id = i; 34 sort(es+1,es+1+m); 35 for(int i=1;i<=m;i++) if( ufs.merge(es[i].u,es[i].v) ) ans += es[i].w , printf("%d\n",es[i].id); 36 return 0; 37 } View Code

測試點3,5的顏色都比較少,我們可以狀壓枚舉顏色然后最小生成樹(測試點3編譯選項Ofast優化全開,臺式6代i5跑了半個小時QAQ)。
代碼:

1 #include<bits/stdc++.h> 2 typedef long long int lli; 3 using namespace std; 4 const int maxn=1e5+1e2,maxe=1e6+1e2; 5 const lli inf=0x3f3f3f3f3f3f3f3fll; 6 7 int n,m; 8 lli ans=inf; 9 set<int> cs; 10 int way[maxe],mem[maxe]; 11 12 struct Edge { 13 int u,v,col,id; 14 lli w; 15 friend bool operator < (const Edge &a,const Edge &b) { 16 return a.w < b.w; 17 } 18 }es[maxe]; 19 20 struct UnionFindSet { 21 int fa[maxn]; 22 inline int findfa(int x) { 23 return fa[x] == x ? x : fa[x] = findfa(fa[x]); 24 } 25 inline bool merge(int x,int y) { 26 x = findfa(x) , y = findfa(y); 27 return x == y ? 0 : fa[x] = y; 28 } 29 inline void init() { 30 for(int i=1;i<=n;i++) fa[i] = i; 31 } 32 }ufs; 33 34 inline int getsiz(int x) { 35 int ret = 0; 36 while(x) ++ret , x -= (x&-x); 37 return ret; 38 } 39 inline lli calc(int sta) { 40 lli ret = 0 , sel = 0; ufs.init(); 41 for(int i=1;i<=m;i++) if( ( es[i].col & sta ) && ufs.merge(es[i].u,es[i].v) ) ret += es[i].w , way[++sel]=i; 42 return sel == n - 1 ? ret * getsiz(sta) : inf; 43 } 44 45 46 int main() { 47 scanf("%d%d",&n,&m) , ufs.init(); 48 for(int i=1;i<=m;i++) scanf("%d%d%lld%d",&es[i].u,&es[i].v,&es[i].w,&es[i].col) , es[i].col = 1 << ( es[i].col - 1 ) , cs.insert(es[i].col) , es[i].id = i; 49 sort(es+1,es+1+m); 50 int ss = 1 << cs.size(); 51 cerr<<"inf = "<<inf<<endl; 52 for(int i=1;i<=m;i++) if( es[i].col >= ss ) cerr<<"color size error!"<<endl , exit(0); 53 for(int i=0;i<ss;i++) { 54 lli cal = calc(i); 55 if( cal < ans ) ans = cal , memcpy(mem,way,sizeof(int)*n) , cerr<<"copy i = "<<i<<endl; 56 } 57 for(int i=1;i<n;i++) printf("%d\n",es[mem[i]].id); 58 return 0; 59 } View Code

剩下的測試點(4,6,7,8,9)沒發現啥特殊性質,直接上模擬退火(隨機數種子?當然是我老婆的名字啦)。
代碼:

1 #include<bits/stdc++.h> 2 typedef long long int lli; 3 using namespace std; 4 const int maxn=1e3+1e2,maxe=1e4+1e2; 5 const lli inf=0x3f3f3f3f3f3f3f3fll; 6 const double eps=1e-5,mul=0.9999,lambda=0.1,ini=1e8; 7 8 int n,m; 9 10 struct UnionFindSet { 11 int fa[maxn]; 12 inline int findfa(int x) { 13 return fa[x] == x ? x : fa[x] = findfa(fa[x]); 14 } 15 inline bool merge(int x,int y) { 16 x = findfa(x) , y = findfa(y); 17 return x == y ? 0 : fa[x] = y; 18 } 19 inline void init() { 20 for(int i=1;i<=n;i++) fa[i] = i; 21 } 22 }ufs; 23 24 struct Edge { 25 int u,v,val,col,id; 26 }es[maxe]; 27 28 int cur[maxe],now[maxe],ans[maxe]; 29 lli calc_cur,calc_now,calc_ans; 30 double temp; 31 32 inline lli calc() { 33 set<int> cs; lli su = 0; ufs.init(); 34 for(int t=1;t<=m;t++) { 35 const int i = cur[t]; 36 if( ufs.merge(es[i].u,es[i].v) ) su += es[i].val , cs.insert(es[i].col); 37 } 38 return su * cs.size(); 39 } 40 inline void printans() { 41 ufs.init(); 42 for(int t=1;t<=m;t++) { 43 const int i = ans[t]; 44 if( ufs.merge(es[i].u,es[i].v) ) printf("%d\n",es[i].id); 45 } 46 } 47 inline void solve() { 48 memcpy(cur+1,now+1,sizeof(int)*m) , random_shuffle(cur+1,cur+1+m) , calc_cur = calc(); 49 if( calc_cur < calc_ans ) memcpy(ans+1,cur+1,sizeof(int)*m) , calc_ans = calc_cur; 50 if( calc_cur < calc_now || ( temp > lambda && (double) rand() / ( rand() + 1 ) > temp ) ) memcpy(now+1,cur+1,sizeof(int)*m) , calc_now = calc_cur; 51 } 52 inline void random_seq() { 53 int l = rand() % m + 1 , r = rand() % m + 1; 54 if( l > r ) swap(l,r); 55 random_shuffle(cur+l,cur+r+1); 56 } 57 inline void solve2() { 58 memcpy(cur+1,now+1,sizeof(int)*m) , random_seq() , calc_cur = calc(); 59 if( calc_cur < calc_ans ) memcpy(ans+1,cur+1,sizeof(int)*m) , calc_ans = calc_cur; 60 if( calc_cur < calc_now || ( temp > lambda && (double) rand() / ( rand() + 1 ) > temp ) ) memcpy(now+1,cur+1,sizeof(int)*m) , calc_now = calc_cur; 61 62 } 63 inline void getans() { 64 calc_now = calc_ans = inf; 65 for(int i=1;i<=m;i++) now[i] = i; 66 for(temp=ini;temp>eps;temp*=mul) solve(); 67 for(int i=1;i<=m;i++) now[i] = i; 68 calc_now = inf; 69 for(temp=ini;temp>eps;temp*=mul) solve2(); 70 } 71 72 73 inline void init() { // it can work 74 static const char seed[] = "KurenaiKisaragi"; 75 uint su = 0 , li = strlen(seed); 76 for(uint i=0;i<li;i++) su += seed[i]; 77 srand(su); 78 } 79 80 int main() { 81 scanf("%d%d",&n,&m) , init(); 82 for(int i=1;i<=m;i++) scanf("%d%d%d%d",&es[i].u,&es[i].v,&es[i].val,&es[i].col) , es[i].id = i; 83 getans() , printans(); 84 return 0; 85 } View Code

結果下來測試點0,1,2,3,5,7都A了,4,6掛得很慘,8,9的分數不算太低。
這題總分數下來全場第三,比兩個學弟低不少(人家一個隨機爬山爬到收斂,一個枚舉選邊顏色蒙特卡洛跑半個小時,好像還商量了(商量還行?))。
其實測試點4,6的顏色都比較少,正解都是先欽定割邊必選然后爆搜顏色+剪枝(你測試點1寫的tarjan怎么不知道拿過來用了?)。
依舊沒有rank1(什么提答大戰你這種續命選手還想rank1?),然而也沒有辦法啦。考掛自己菜......

為什么沒歌詞了?額......改天再補嘛。
(這都能拖延?我還是快滾粗吧)

轉載于:https://www.cnblogs.com/Cmd2001/p/9089836.html

總結

以上是生活随笔為你收集整理的20180525小测的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

中文字幕一区二区三区四区在线视频 | 999久久| 天天操天 | 亚洲一级黄色 | 免费 在线 中文 日本 | 免费观看日韩av | 亚洲成人频道 | 成人久久18免费 | 丁香婷婷基地 | 亚洲一区日韩在线 | 日韩性久久 | 人人艹人人 | 亚洲国产成人精品在线观看 | 国产精品久久久久久久久久久久久久 | 久久亚洲婷婷 | 一区二区精品在线 | 久久久久久免费 | 久久久久国产精品厨房 | 99久久国产免费,99久久国产免费大片 | www亚洲国产 | 99久久夜色精品国产亚洲 | 中文国产成人精品久久一 | 免费观看一区 | 亚洲视频专区在线 | 人人干人人草 | 大胆欧美gogo免费视频一二区 | av成人动漫在线观看 | 91在线看视频 | 久久精品视频免费播放 | 日本韩国精品一区二区在线观看 | 久草在线看片 | 色噜噜色噜噜 | 一区二区 不卡 | 日韩欧美在线视频一区二区三区 | 丁香婷五月 | 97理论片 | 精品欧美一区二区三区久久久 | 一级久久精品 | 99精品视频播放 | a级片在线播放 | 日韩欧美精品在线 | 超碰在线cao | 日本在线中文在线 | 99热精品国产一区二区在线观看 | 91av在线播放| 久久69精品 | 91精品视频在线播放 | 香蕉视频在线免费 | 黄色成人在线观看 | 欧美一级片免费 | 国产香蕉视频在线播放 | 66av99精品福利视频在线 | 久久成人精品视频 | 伊人黄| 国产成人久久av977小说 | 一区二区三区免费在线观看视频 | 操操操夜夜操 | 日本动漫做毛片一区二区 | 九九一级片 | 97免费视频在线 | 国产一级视频 | 一级黄色电影网站 | 美女网站一区 | 国产91勾搭技师精品 | 狠狠色丁香婷婷综合最新地址 | 一级理论片在线观看 | 色综合天天综合网国产成人网 | 精品国偷自产国产一区 | 美女网站久久 | 九七人人干 | 久久成人国产精品入口 | 国产精品久久久久久久久久久不卡 | 国内久久久久久 | 久久久久精 | 在线观看免费av片 | 欧美怡红院视频 | 国产经典 欧美精品 | 久草视频视频在线播放 | 色偷偷88888欧美精品久久 | 狠狠伊人 | 国内外成人在线视频 | 国产手机视频在线观看 | 精品国产一区二区三区四区在线观看 | 中文免费观看 | 久久国产精品视频免费看 | 91日韩在线视频 | 91精品国产92久久久久 | 在线国产专区 | 久久综合偷偷噜噜噜色 | 久久久久欠精品国产毛片国产毛生 | av中文字幕网址 | 亚洲专区在线播放 | 伊人狠狠 | 国产视频999 | 国产色女人 | 国产老熟| 一区二区精品在线视频 | 久色 网 | 国产成人精品999在线观看 | 狠狠色伊人亚洲综合网站野外 | 超碰人人在线观看 | 五月婷香蕉久色在线看 | 成人精品视频 | 久久久国产精品电影 | 中午字幕在线 | 天天拍天天操 | 96精品在线 | 狠狠操天天射 | 亚洲精品久久久蜜桃直播 | 在线免费观看国产黄色 | 国产一区二区三区午夜 | 亚洲视屏 | 亚洲午夜激情网 | 欧美贵妇性狂欢 | 日韩久久精品一区二区 | 精品亚洲视频在线 | 狠狠狠狠狠狠 | 免费三级黄色 | av成人动漫 | 国产乱对白刺激视频不卡 | 国产高清视频免费 | 国产精品aⅴ| 成人免费电影 | 欧美a级在线免费观看 | 在线视频观看成人 | 在线高清一区 | 麻豆视频免费播放 | 国产精品国产三级国产专区53 | 99这里只有久久精品视频 | 国产午夜不卡 | 伊人宗合网 | 日韩精品中文字幕久久臀 | 国产日韩精品一区二区 | 久久久麻豆精品一区二区 | 亚洲涩涩涩涩涩涩 | 亚洲免费成人av电影 | 国产一区免费在线观看 | 国产中文视频 | 在线国产99 | 在线国产99 | 天天色天天上天天操 | 中文字幕电影在线 | 91在线www| www.成人sex | 丰满少妇在线观看网站 | 国产成人av一区二区三区在线观看 | 81精品国产乱码久久久久久 | 日韩电影在线观看一区二区 | 最近日本韩国中文字幕 | 久久国产经典 | 亚洲视频久久 | 麻豆视频免费看 | 欧美极品在线播放 | 99久久婷婷国产 | 国产在线一区二区三区播放 | 亚洲区二区| 久草免费色站 | 中文字幕精品一区二区精品 | 日日干综合 | 91精品国产麻豆 | 手机在线视频福利 | 少妇视频在线播放 | 视频一区在线免费观看 | 精品久久久999 | 97精品国产97久久久久久久久久久久 | 久在线观看视频 | 精品国产视频一区 | 日韩三级.com | 日韩精品一区二区三区不卡 | 欧美日韩国产色综合一二三四 | 玖玖视频 | 久久精品中文字幕免费mv | 日韩二级毛片 | 成人中文字幕+乱码+中文字幕 | 欧洲亚洲国产视频 | 97在线超碰 | 一级片在线 | 日日摸日日 | 99精品久久只有精品 | 天天操天天操天天操天天操 | 久久久久免费精品视频 | av蜜桃在线 | 欧美激情精品久久久久久免费 | 日韩经典一区二区三区 | 久久永久视频 | 免费视频99 | 天天操天天玩 | 免费久久99精品国产婷婷六月 | 99久久久久久久久 | 欧美一区二区三区四区夜夜大片 | 永久免费在线 | 中文国产在线观看 | 日本中文字幕在线免费观看 | 久久精品久久久精品美女 | 日韩欧美区 | 国产精品国产自产拍高清av | 日韩av黄| 久久国产美女 | 日本69hd| 人人插人人干 | 午夜精品99久久免费 | 黄色大全视频 | 99这里只有精品视频 | 亚欧洲精品视频在线观看 | 日韩电影中文,亚洲精品乱码 | 免费福利视频网站 | 国产精品久久久久久久电影 | 天天射天天艹 | 国产精品一区二区久久精品 | 高清国产午夜精品久久久久久 | 在线视频一区二区 | 五月综合在线观看 | 91.dizhi永久地址最新 | 婷婷色网 | 精品一区二区在线免费观看 | aaa日本高清在线播放免费观看 | 探花视频在线观看+在线播放 | 天天拍天天色 | 色婷婷综合久久久久 | 五月天高清欧美mv | 中文字幕国产精品一区二区 | 在线国产视频一区 | 一二三区av | 久久亚洲成人网 | 五月天六月丁香 | 久久99国产精品视频 | 日本三级全黄少妇三2023 | 韩日精品在线 | 国产亚洲婷婷免费 | 日韩成人免费电影 | 欧美精品久久久 | 青青河边草免费观看完整版高清 | 日韩xxxxxxxxx| 免费看黄电影 | 麻豆视频免费入口 | 久久成人在线 | 国产视频在线观看一区 | 日本不卡一区二区三区在线观看 | 国产福利av| 黄色av电影网 | 久久久久久久久久久网 | www·22com天天操| 亚洲欧美成人在线 | 成人av中文字幕在线观看 | 色99在线| 丁香花中文在线免费观看 | 婷婷五月在线视频 | 久久久久久久久久久久国产精品 | 91完整视频| 天天操天天添天天吹 | 在线观看国产一区二区 | 国产精品久久久久影视 | 国产又粗又硬又爽视频 | 96精品视频 | 成人国产精品av | 最近2019好看的中文字幕免费 | 免费大片黄在线 | 性色xxxxhd| 久久久国产精华液 | 国产精品一区二区久久国产 | 日韩一级片观看 | 久久久国产精品久久久 | 国产糖心vlog在线观看 | 国产成人一区二区三区在线观看 | 国内三级在线 | 国产五月婷 | 亚洲成aⅴ人在线观看 | 亚洲无在线 | 人人草在线视频 | 国产成人精品午夜在线播放 | 九九av | а中文在线天堂 | 中文字幕在线看片 | 天天操夜夜摸 | 欧美极品在线播放 | 久久草 | 亚洲精品小视频在线观看 | 国产香蕉视频在线观看 | 日日干夜夜干 | 91麻豆精品国产91久久久久久久久 | 欧美日韩精品二区第二页 | 精品成人网 | 亚洲一区日韩精品 | 国产精品福利午夜在线观看 | 国产精品99久久99久久久二8 | 久久久久亚洲精品 | 字幕网在线观看 | 亚洲va欧洲va国产va不卡 | 天天操天天添 | 久久国产精品免费一区 | sesese图片| 在线 成人 | 精品一区二区三区四区在线 | 天天草天天草 | 96精品视频 | 日韩在线电影观看 | 精品免费99久久 | 丝袜美腿在线 | 视色网站| 麻豆久久一区二区 | 欧美激情综合五月色丁香 | 日日干精品 | 草久视频在线观看 | 久久精品国产成人 | 国产99久久久精品 | 久草在线在线精品观看 | 国产成人一级电影 | 91网免费观看| 国产精品久久久久一区二区三区 | 成人在线免费视频观看 | 国产高清久久 | 久久久久欧美精品999 | 日韩久久久久久久久久 | 人人澡人人爱 | 欧美美女激情18p | 中文在线www| 右手影院亚洲欧美 | 国产精品第一页在线观看 | 福利久久久 | 99婷婷狠狠成为人免费视频 | h视频在线看 | 伊人天堂av | 久草精品电影 | 玖玖玖精品 | 免费观看国产成人 | 日韩精品资源 | 国产精品伦一区二区三区视频 | 国产一二区视频 | 天天综合网天天综合色 | 99久久99久久精品免费 | 黄色国产精品 | 成人黄色小说网 | 久久精品牌麻豆国产大山 | 婷婷深爱激情 | 国内精品二区 | 欧美国产日韩一区二区 | 亚洲精品在线电影 | 亚洲午夜久久久久久久久久久 | 久久黄色影视 | 青青草国产成人99久久 | 久久午夜国产精品 | 日本久久免费电影 | 免费a视频在线 | 国产区精品在线观看 | 亚洲欧美日韩在线一区二区 | www,黄视频 | 日韩精品免费一区二区三区 | 国外调教视频网站 | 青青河边草免费观看完整版高清 | 五月开心网 | 色在线国产 | 97香蕉超级碰碰久久免费软件 | 婷婷.com| 国产精品一区电影 | 成人在线一区二区三区 | 午夜视频色 | 成人黄色资源 | 免费看搞黄视频网站 | 国产精品免费视频网站 | 香蕉网在线观看 | 久久久久看片 | 亚洲夜夜综合 | 日韩欧美视频一区二区三区 | 色老板在线视频 | 国产对白av | 99r在线视频 | 免费观看福利视频 | 欧美激情综合网 | 婷婷色综合网 | 蜜臀av在线一区二区三区 | 热久久视久久精品18亚洲精品 | 国产午夜一级毛片 | www.久久久.com | 一区二区毛片 | 天天综合中文 | 亚洲美女精品视频 | 日韩免费 | 草久视频在线 | 天堂网中文在线 | 草久在线播放 | 日韩一级精品 | 在线观看精品一区 | 国产精品成人av在线 | 爱干视频 | 成人毛片一区 | 成人a免费视频 | 久久精品在线免费观看 | 麻豆传媒视频在线免费观看 | 国产精品尤物视频 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 精品高清美女精品国产区 | 丁香高清视频在线看看 | 97手机电影网 | 免费观看国产精品视频 | 五月婷婷丁香 | 色综合天天色综合 | 三级性生活视频 | www.五月天色 | 在线国产欧美 | 国产色一区 | 五月婷婷综合在线 | 亚洲aaa毛片| 久久久国产精品成人免费 | 激情影音先锋 | 欧美淫aaa免费观看 日韩激情免费视频 | 色a在线观看 | 久久99热这里只有精品国产 | 999一区二区三区 | 51久久夜色精品国产麻豆 | 性色av一区二区三区在线观看 | 日韩欧美电影在线 | 亚洲日本在线一区 | 狠狠狠狠狠狠操 | av日韩av| 天天操天天射天天 | 国产成人三级在线观看 | 国产成人精品亚洲精品 | 九九免费在线视频 | 精品一区二区在线免费观看 | 中文字幕丝袜制服 | 91粉色视频 | 91精选 | av免费在线观看网站 | 久久一及片 | 日本中文乱码卡一卡二新区 | 欧美日韩一区二区视频在线观看 | 成年人在线观看 | 中文字幕视频 | 中文字幕av免费观看 | 亚洲国产美女精品久久久久∴ | 国产亚州av | 日韩三级.com| 91精品国产91久久久久久三级 | 中文字幕免费高清在线观看 | 国语自产偷拍精品视频偷 | www.久久婷婷 | 一本一道久久a久久精品蜜桃 | 综合色亚洲 | 国产精品一区二区三区免费视频 | 夜夜视频资源 | 亚洲 欧美 成人 | 麻豆视频免费观看 | 99久高清在线观看视频99精品热在线观看视频 | 色婷婷久久久综合中文字幕 | 黄色在线观看网站 | 亚洲国产播放 | 叶爱av在线 | 成人全视频免费观看在线看 | 蜜臀一区二区三区精品免费视频 | 国产一区欧美日韩 | 亚洲区色| 激情五月婷婷网 | 亚洲激情在线视频 | 亚洲成av人片在线观看香蕉 | 伊人狠狠色丁香婷婷综合 | 毛片永久新网址首页 | 国产精品一区二区美女视频免费看 | 成人久久国产 | 高清久久久 | 免费黄色网止 | 国产91国语对白在线 | 91刺激视频 | 天天爱天天操天天爽 | 精品国产乱码久久久久久久 | 激情五月婷婷综合 | 亚洲精品在线视频 | 日韩xxxx视频 | 日韩大片在线免费观看 | 毛片视频电影 | 欧美福利久久 | 国产天天综合 | 午夜99| 18性欧美xxxⅹ性满足 | 久操中文字幕在线观看 | 美女福利视频网 | 一区二区三区精品在线 | 少妇高潮冒白浆 | 国产一线二线三线性视频 | 久久精品免费播放 | 91免费观看| 国产免费久久精品 | 夜夜躁日日躁狠狠久久88av | 亚洲欧美日韩国产精品一区午夜 | 麻豆精品传媒视频 | 激情五月婷婷激情 | 国产淫片免费看 | 最近2019年日本中文免费字幕 | 国产日产精品一区二区三区四区的观看方式 | 日韩精品网址 | 久久久久激情电影 | 天天干天天操人体 | 7777xxxx| 99久久久久久久久久 | 激情综合狠狠 | 天天夜夜狠狠操 | 日韩欧美电影 | 亚洲黄色片在线 | 91麻豆精品国产91久久久使用方法 | 天天天操天天天干 | 日韩高清国产精品 | 丁香婷婷激情五月 | 国产一区在线视频播放 | 日日干日日色 | 在线观看视频中文字幕 | 亚洲特级片 | 天天色天 | 久久国产精品久久久 | 天天摸天天舔 | 亚洲第一区在线播放 | 九九九九九精品 | 日日操日日插 | 国产女教师精品久久av | 亚洲精品av中文字幕在线在线 | 亚洲精品在线免费 | 国产精品久久久久久久久久东京 | 中文字幕日韩有码 | 五月婷在线播放 | 五月婷婷视频在线 | 91亚洲精品久久久久图片蜜桃 | 国模吧一区| 亚洲成人在线免费 | 婷婷色吧 | 国产精品6999成人免费视频 | 就要干b | 国产精品va在线观看入 | 999国内精品永久免费视频 | 午夜影院先| 久久99精品热在线观看 | 综合久久久久久 | 亚洲精品在线观看免费 | 亚洲人成人天堂h久久 | 久久久香蕉视频 | 免费电影播放 | 国产精品18久久久久久不卡孕妇 | 91精品久久久久久综合乱菊 | 欧美成人在线网站 | 成人av影视观看 | 色婷婷视频在线观看 | aaa毛片视频 | 亚洲色图 校园春色 | 在线国产日本 | 91一区啪爱嗯打偷拍欧美 | 毛片激情永久免费 | 欧美日韩中文另类 | 亚洲黄色app | 国产精品久久久久久久久久久久午夜 | 国产精品久久久久婷婷二区次 | 日韩视频www | 久久久久久久久久伊人 | 免费在线观看黄网站 | 国产精品成久久久久 | 国产精品免费观看国产网曝瓜 | 国产系列 在线观看 | 久久久 精品 | 欧美少妇xxx| 亚洲精品视频二区 | 国产精品高清在线 | 超碰大片 | 99re久久精品国产 | 月丁香婷婷 | 国产精品第十页 | 欧美福利在线播放 | 国产伦精品一区二区三区四区视频 | 日韩网站一区二区 | 欧美亚洲专区 | 日本精品一区二区三区在线播放视频 | 国产99免费 | 国产人成一区二区三区影院 | 激情网第四色 | 91色视频 | 香蕉成人在线视频 | 日本成址在线观看 | 制服丝袜成人在线 | 狠狠黄 | 亚洲精品视频在线观看网站 | 又黄又爽又刺激 | 91网站免费观看 | 久久这里只有精品视频99 | 亚洲一区不卡视频 | 国产区网址 | 一区二区视频网站 | av日韩不卡| 久久天天躁狠狠躁夜夜不卡公司 | 一级片色播影院 | 免费亚洲婷婷 | 久草视频在线观 | 天天色天天干天天 | 亚洲 欧美 91| 丁香五月缴情综合网 | 在线观看www. | 久草视频99 | 九九九电影免费看 | 日韩av电影免费观看 | 波多野结衣久久资源 | 91女子私密保健养生少妇 | 婷婷综合久久 | 91豆花在线观看 | 免费下载高清毛片 | 国产亚洲精品bv在线观看 | 国产v亚洲v | 精品国产人成亚洲区 | 国产在线综合视频 | 日韩精品在线免费播放 | 免费看一及片 | 天天做综合网 | 精品在线观看国产 | 日韩综合视频在线观看 | 欧美日韩视频免费 | 国产精品一区二区在线播放 | 一区二区中文字幕在线播放 | 婷婷久久国产 | 亚洲精品在线网站 | 久久久久国产精品视频 | 欧美a级片免费看 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 日日夜夜天天综合 | 日本一区二区不卡高清 | 日韩在线电影一区 | 久久视频这里有精品 | 手机在线永久免费观看av片 | 超碰免费97 | 亚洲精品在线播放视频 | 97超碰人人澡人人爱学生 | 四虎影视国产精品免费久久 | 丁香五香天综合情 | 亚洲精品美女在线观看 | 久久免费视频这里只有精品 | 97福利在线 | 青青久草在线 | 综合色爱 | 亚洲精品高清视频在线观看 | 激情文学综合丁香 | 日韩三级av | 久久福利剧场 | 亚洲一级性 | 婷婷激情五月 | 亚洲精品午夜久久久 | 五月天婷婷在线观看视频 | 亚洲午夜久久久久久久久久久 | 99精品视频免费观看视频 | 国产精品99蜜臀久久不卡二区 | 97香蕉超级碰碰久久免费软件 | 人人爽人人爽人人爽人人爽 | 国产精在线 | 91丨精品丨蝌蚪丨白丝jk | 午夜10000 | 日本九九视频 | 四虎在线视频 | 色天堂在线视频 | 在线午夜 | av免费网| 国产成人一区在线 | 婷婷综合av| 久久精品视频免费播放 | 久热精品国产 | 深夜国产福利 | 99久久www| 久久精品1区 | 在线观看国产麻豆 | 国产免费一区二区三区最新 | 激情喷水 | av成人黄色 | 国产一级片不卡 | 日韩有码网站 | 亚洲免费在线观看视频 | 国产高清视频免费最新在线 | 日韩动漫免费观看高清完整版在线观看 | 九色精品| 亚洲综合在线播放 | 亚洲精品动漫在线 | 日韩精品专区在线影院重磅 | av高清免费在线 | 最近能播放的中文字幕 | 免费看的黄色小视频 | 国产夫妻av在线 | 国产在线中文 | 福利网在线| 最新日本中文字幕 | 天堂视频中文在线 | 在线观看韩国av | 日韩成片 | 99在线视频精品 | av福利在线看 | 国产成人一区二区啪在线观看 | 草久在线播放 | 国产福利av| 日日操日日插 | 亚洲免费国产视频 | 色综合天天在线 | 九色免费视频 | 五月婷婷中文网 | 午夜精品视频一区 | 久久综合狠狠综合久久狠狠色综合 | 亚洲成a人片77777kkkk1在线观看 | 欧美日韩不卡一区二区 | 精品福利网站 | 99精品热 | 午夜视频免费在线观看 | 日韩www在线 | 成人在线观看网址 | 日韩av影片在线观看 | 中文字幕在线观看你懂的 | 久久精品一区二区三区中文字幕 | 国产你懂的在线 | 日韩精品一区二区不卡 | 在线观看免费福利 | 麻豆国产精品va在线观看不卡 | 亚洲一区日韩精品 | 日本性生活免费看 | 婷婷午夜| 久久9999久久免费精品国产 | 婷婷久久网 | 玖玖玖在线 | 久久午夜色播影院免费高清 | 亚洲精品国产精品国自产观看浪潮 | 国产午夜小视频 | 国产色女| 久热av | 日日爽天天操 | 国产小视频在线播放 | 蜜臀久久99精品久久久无需会员 | 国产三级精品在线 | 欧美日韩在线观看一区二区 | 四虎在线视频 | av中文天堂 | 91麻豆精品国产91久久久久久久久 | 日韩免费播放 | 欧美视频在线观看免费网址 | 欧美福利久久 | 亚洲一级性 | av不卡中文字幕 | 99久久精品视频免费 | 日韩精品免费一区二区在线观看 | 久草视频免费看 | 国产在线视频一区二区 | 成人中文字幕av | 三级黄免费看 | 国产一区二区免费在线观看 | 一 级 黄 色 片免费看的 | 免费人成网ww44kk44 | 在线观看视频黄色 | 欧美日韩国产一区二区三区在线观看 | 国产精品欧美一区二区 | 久久国产片 | 久久免费99 | 99色免费| 99久久婷婷国产综合亚洲 | 在线播放视频一区 | 日韩天天操 | 日韩欧美一区二区三区免费观看 | 干狠狠 | 国产区高清在线 | 91人人澡 | 亚洲一区二区视频在线播放 | 久久久这里有精品 | 欧美成人亚洲成人 | 亚洲高清在线视频 | 日日干美女 | 精品国产一区二区三区久久久久久 | aaawww| 91精选在线 | 亚洲激情在线 | 91视频在线观看免费 | 色吊丝在线永久观看最新版本 | 免费看黄色小说的网站 | 超碰97公开 | 久久伊人八月婷婷综合激情 | 成人av免费在线播放 | 久久黄色精品视频 | 色五月成人 | 91中文字幕在线播放 | 亚洲欧洲精品在线 | 婷婷精品进入 | 免费看十八岁美女 | 亚洲va欧美va人人爽春色影视 | 男女拍拍免费视频 | 精品国产福利在线 | 久久成电影| 日韩高清免费在线 | 成人av片免费观看app下载 | 久久涩涩网站 | 天天操福利视频 | 一区二区三区在线免费观看视频 | 一区二区中文字幕在线观看 | 久久精品中文字幕一区二区三区 | 操操综合网| 久久国产欧美日韩 | 黄色免费网站下载 | 国产亚洲精品综合一区91 | 久久久久久国产一区二区三区 | 五月婷婷开心中文字幕 | 国产黄色一级片在线 | 9在线观看免费高清完整 | 欧美性久久久久久 | 视频福利在线观看 | 日韩在线视频一区二区三区 | 国产免费精彩视频 | 国产精品久久一卡二卡 | 日韩av电影免费观看 | 精品亚洲国产视频 | 欧美日bb| 国产精品99久久久久久有的能看 | 欧美日韩成人一区 | 97在线免费| 精品欧美一区二区在线观看 | 国产精品久久久久久久久久免费 | 综合色播| 婷婷视频 | 色爱区综合激月婷婷 | 狠狠的操狠狠的干 | 久久综合久久综合这里只有精品 | 久要激情网| 国产成人综合在线观看 | 九色激情网 | 一区二区三区免费在线观看视频 | 精品国产一区二区三区久久久蜜月 | 91精品国产91久久久久 | 精品一二三区 | 国产精品视频全国免费观看 | 久久亚洲综合国产精品99麻豆的功能介绍 | 久久国产精品久久精品 | 久久久久99精品成人片三人毛片 | 免费在线观看av网站 | 开心激情综合网 | 国产一区 在线播放 | 丁香婷婷激情网 | 色姑娘综合天天 | 色97在线 | 国产精品久久一卡二卡 | 欧美aaa视频 | 美女网站在线观看 | 国产视频在线观看一区 | 亚洲一区天堂 | 97视频在线观看成人 | 日韩av影视在线 | 麻豆久久久 | 国产尤物视频在线 | 免费日韩| 韩国av免费看 | 麻豆观看| 黄色免费大片 | 91麻豆精品国产91久久久久久 | 涩涩成人在线 | 日本不卡123| 色婷婷www | 在线成人中文字幕 | 99久久精品国产免费看不卡 | 成人一级片在线观看 | 探花视频网站 | 久久男人中文字幕资源站 | 久久久免费高清视频 | 一区二区三区www | 国产精品激情在线观看 | 久久精品99精品国产香蕉 | 国产最新在线视频 | 欧美成人日韩 | 最新av在线播放 | 久久综合九色综合97婷婷女人 | 黄色在线网站噜噜噜 | 日韩精品视频在线免费观看 | 99精品视频免费看 | 欧美在线视频一区二区 | 国产成人综合在线观看 | av一区二区三区在线观看 | 国模一二三区 | 中文字幕123区| 亚洲一级片在线看 | 欧美一级欧美一级 | 99久久这里有精品 | 久久精品久久久久久久 | 日韩av电影国产 | 免费久久网站 | 二区三区中文字幕 | 韩日精品在线 | 国产在线无 | 在线不卡中文字幕播放 | 午夜av剧场 | 99c视频高清免费观看 | 精品国产免费看 | 中文字幕 婷婷 | 国产破处在线视频 | 亚洲第一区在线观看 | 一区免费视频 | 日韩视频在线观看免费 | 四虎国产精品免费 | 日韩av成人 | 国产一区二区三区在线 | 波多野结衣电影一区二区三区 | 成人97视频 | 一级欧美日韩 | 99精品在线视频播放 | 欧美日韩不卡一区二区 | 成人在线视频你懂的 | 久久久久二区 | 久久国产精品99久久久久久进口 | 鲁一鲁影院 | 欧美少妇xxxxxx| 狠狠狠综合 | 成人三级视频 | 在线视频麻豆 | 一区二区三区免费在线 | 国产九色视频在线观看 | 81国产精品久久久久久久久久 | 日韩丝袜 | 亚洲激情国产精品 | 国产69久久久 | 99视屏| 欧美 另类 交 | 97夜夜澡人人爽人人免费 | 四虎国产精| 天堂网一区二区三区 | 久久精品99久久久久久2456 | 午夜a区 | 国产福利91精品张津瑜 | 97精品国产97久久久久久久久久久久 | 2017狠狠干 | 亚洲一区久久久 | 黄色www在线观看 | 久操中文字幕在线观看 | 日韩va在线观看 | 国产午夜麻豆影院在线观看 | 国产精品乱码久久久久久1区2区 | 在线看av的网址 | 蜜臀aⅴ国产精品久久久国产 | 狠狠色丁香婷婷综合最新地址 | 香蕉成人在线视频 | 男女视频91 | 久久久激情网 | 日韩av成人 | 亚洲精品欧美视频 | www.com.日本一级 | 91看片淫黄大片在线播放 | 99精品视频精品精品视频 | 天天爱天天草 | 国产资源网| 日韩在线精品视频 | 成人av电影免费在线播放 | 久久伊人操 | 亚洲精品国产精品乱码不99热 | 国产超碰在线 | 天天干天天插 | 国产精品 日韩 欧美 | 九九国产精品视频 | av福利第一导航 | 久久在线电影 | 右手影院亚洲欧美 | 米奇影视7777 | 久久国产成人午夜av影院潦草 | 色综合夜色一区 | 成人啪啪18免费游戏链接 | 插婷婷 | 中文字幕第一页在线视频 | av线上免费看 | 亚洲一区视频在线播放 | 色婷婷成人 | 亚洲综合精品视频 | 久久99欧美 | 91刺激视频| 国产精品视频不卡 | 色在线免费观看 | 久久 在线 | 国产亚洲精品免费 | 国产999精品久久久久久麻豆 | 91桃花视频| 欧美性大胆 | 特级大胆西西4444www | wwwwww黄 | 久久精品久久综合 | 人成在线免费视频 | 国产成人一区二区三区久久精品 | 日日夜夜精品网站 | 探花视频免费在线观看 | 国产精品区二区三区日本 | 水蜜桃亚洲一二三四在线 | 91精品专区 | 日韩免费看的电影 | a色视频 | 精品一区二区在线免费观看 | 婷婷精品在线视频 | 亚洲精品久久久久中文字幕二区 | 亚洲精品一区二区在线观看 | 在线成人一区 | 五月天综合网站 | 免费久久久 | av免费网站 | 天天插天天狠天天透 | 欧美激情精品久久久久久免费 | 中文字幕网址 | 国产成人亚洲在线观看 | 欧美成人xxx| av在线等 | 国产精品一区二区免费看 | 成人禁用看黄a在线 | 人人超碰免费 | 97人人超碰在线 | 中文字幕在线视频精品 | 国产v欧美| 亚洲精品国产自产拍在线观看 |