t1:
分析:
首先看題,發現是一道很簡單的尤拉迴路題目,o(∩_∩)o,心中竊喜,結果一看資料範圍,看不懂的小,糾結了半天,也沒想到什麼演算法讓資料最大只有20,只有打了乙個尤拉迴路.結果居然a了,orz,真是迷啊!
code:
#include
#include
#include
#include
#include
using
namespace
std;
void setio(const
string&a)
#include
vector
g[15];
int cnt=0,head,tail;
int n,m;
bool dfs(int u,int pre) else
}if(u==tail) return next==head&&cnt==m*2;
return dfs(next,u);
}int main()
for(int i=1;i<=n;i++)
}}
t2:
分析:
剛拿到這題發現是一道mst的模板題,但是看到是一張完全圖且n最大是1e5,所以我們肯定不能把所有的邊都求出來,那麼考慮刪邊,一開始我以為從他定義的距離考慮,後來發現不行,那麼這題可以轉化成從(n^2-1)條邊中選擇(n-1)條邊的問題.此時我們可以考慮給x,y,z排序,然後建邊,用kruskal求解.
解法的證明:
我們需要滿足每輛個點有且僅有一條邊,所以我們排序後選擇每兩個相鄰的點之間的距離,因為若中間相隔必然沒有相鄰優.而對於這樣是否能建成乙個樹也是很顯然的.因為相鄰兩點必然兩兩不同,所以一定會有樹.至於排三次序後出現環的話,可以用並查集解決.
code:
#include
#include
#include
#include
#include
#include
#include
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fod(i,a,b) for(int i=a;i>=b;i--)
using
namespace
std;
const
int maxn=300000+10;
struct ex
}ex[maxn];
struct ey
}ey[maxn];
struct ez
}ez[maxn];
int n,fa[maxn];
int find(int x)
struct edge
}e[maxn*2];
bool cmp(const edge &a,const edge& b)
}printf("%d",ans);
}int main()
sort(ex+1,ex+1+n);
sort(ey+1,ey+1+n);
sort(ez+1,ez+1+n);
fo(i,2,n)
sort(e+1,e+1+len,cmp);
kruskal();
return
0;}
t3
還沒改完
continue—–
2023年11月1日普及組模擬賽 解題報告
給定乙個長和寬都小於等於100的矩陣,求出矩陣邊緣的和 暴力模擬 include using namespace std int a,n,m,i,j long long s int main if i 1 j 1 i n j m s a 直接判斷 printf lld s 輸出 return 0 給...
2023年2月25日手記
由於這幾個星期太忙所以一直沒時間更新自己的微博,為自己沒有做到堅持一天一更而感到羞愧留,好吧 先說下昨天剛了解到的知識點吧1.內聯元素2.css命名的權重問題。好了我先來聊一聊內聯元素的問題。1.據我了解,元素分為塊級元素和內聯元素 1.內聯元素中的內容都是在同一行內的,不分行 2.裡面的內容不能是...
隨筆記 2023年6月18日23 08 19
今天是父親節,每每想起自己的父親都會感到特別的高興。父親在自己心中是那麼的強大,感覺沒有什麼還能比父親更偉大。作為乙個農村的孩子,你所生活的家庭你是選擇不了的,但是你可以通過自己的努力去改變他。之前上學的時候,感覺他為自己做的一切都是理所當然的,總感覺我要什麼你就得給我什麼,一切都是我說了算。一直到...