250pts
#include <vector> #include <list> #include <map> #include <set> #include <deque> #include <stack> #include <bitset> #include <string> #include <functional> #include <numeric> #include <utility> #include <sstream> #include <iostream> #include <iomanip> #include <cstdio> #include <cmath> #include <cstdlib> #include <ctime> #include <algorithm> using namespace std; #define MAXN 52 long long f[MAXN]; long long num[MAXN][2]; long long sum[MAXN]; class SlimeXSlimesCity { public: int merge(vector <int> pop) { int n=pop.size(); sort(pop.begin(),pop.end()); num[0][0]=pop[0]; num[0][1]=1; int i,j; for(i=1,j=0;i<n;i++) if(pop[i]!=pop[i-1]){ num[++j][0]=pop[i]; num[j][1]=1; } else num[j][1]++; sum[0]=num[0][0]*num[0][1]; int len=j; int res=0; for(i=1;i<=len;i++) sum[i]=sum[i-1]+num[i][0]*num[i][1]; res=num[len][1]; for(i=len-1;i>=0;i--){ long long tmp=sum[i]; int flag=1; for(j=i+1;j<=len;j++) if(tmp>=num[j][0]){ tmp+=num[j][0]*num[j][1]; } else{flag=0;break;} if(flag) res+=num[i][1]; } return res; } };
600pts,二分圖最佳匹配,爲什麼總是在別人的提示下才會想得到,太弱了
#include <vector> #include <list> #include <map> #include <set> #include <deque> #include <stack> #include <bitset> #include <string> #include <functional> #include <numeric> #include <utility> #include <sstream> #include <iostream> #include <iomanip> #include <cstdio> #include <cmath> #include <cstdlib> #include <ctime> #include <algorithm> using namespace std; #define MAXN 55 #define inf 1000000000 #define _clr(x) memset(x,0xff,sizeof(int)*n) int kuhn_munkras(int m,int n,int mat[][MAXN],int* match1,int* match2){ int s[MAXN],t[MAXN],l1[MAXN],l2[MAXN],p,q,ret=0,i,j,k; for (i=0;i<m;i++) for (l1[i]=-inf,j=0;j<n;j++) l1[i]=mat[i][j]>l1[i]?mat[i][j]:l1[i]; for (i=0;i<n;l2[i++]=0); for (_clr(match1),_clr(match2),i=0;i<m;i++){ for (_clr(t),s[p=q=0]=i;p<=q&&match1[i]<0;p++) for (k=s[p],j=0;j<n&&match1[i]<0;j++) if (l1[k]+l2[j]==mat[k][j]&&t[j]<0){ s[++q]=match2[j],t[j]=k; if (s[q]<0) for (p=j;p>=0;j=p) match2[j]=k=t[j],p=match1[k],match1[k]=j; } if (match1[i]<0){ for (i--,p=inf,k=0;k<=q;k++) for (j=0;j<n;j++) if (t[j]<0&&l1[s[k]]+l2[j]-mat[s[k]][j]<p) p=l1[s[k]]+l2[j]-mat[s[k]][j]; for (j=0;j<n;l2[j]+=t[j]<0?0:p,j++); for (k=0;k<=q;l1[s[k++]]-=p); } } for (i=0;i<m;i++) ret+=mat[i][match1[i]]; return ret; } int getValue(char c){ if(c>='0'&&c<='9') return (c-'0'+1); if(c>='a'&&c<='z') return (c-'a'+11); if(c>='A'&&c<='Z') return (c-'A'+37); } class SlimeXGrandSlimeAuto { public: int travel(vector <int> cars, vector <int> dist, vector <string> roads, int Walk, int Drive) { int m=cars.size(); int n=roads.size(); int mat[MAXN][MAXN]; int road[MAXN][MAXN]; memset(road,-1,sizeof(road)); int i,j,k; for(i=0;i<n;i++) for(j=0;j<n;j++) if(roads[i][j]!='.'){ road[i][j]=getValue(roads[i][j]); } for(k=0;k<n;k++) for(i=0;i<n;i++) for(j=0;j<n;j++) if(road[i][k]!=-1&&road[k][j]!=-1){ if(road[i][j]==-1) road[i][j]=road[i][k]+road[k][j]; else if(road[i][j]>road[i][k]+road[k][j]) road[i][j]=road[i][k]+road[k][j]; } int drive[MAXN][MAXN]; memset(drive,-1,sizeof(drive)); for(k=0;k<m;k++){ i=cars[k]; for(j=0;j<n;j++) if(road[i][j]!=-1) drive[i][j]=road[i][j]*Drive; } for(i=0;i<n;i++) for(j=0;j<n;j++){ if(road[i][j]!=-1) road[i][j]*=Walk; if(i==j) road[i][j]=0; } memset(mat,0,sizeof(mat)); int d=dist.size(); for(i=0;i<m;i++){ if(drive[cars[i]][dist[0]]!=-1&&road[0][cars[i]]!=-1){ if(road[0][dist[0]]-drive[cars[i]][dist[0]]-road[0][cars[i]]>0) mat[i][0]=road[0][dist[0]]-drive[cars[i]][dist[0]]-road[0][cars[i]]; } for(j=1;j<d;j++) if(drive[cars[i]][dist[j]]!=-1&&road[dist[j-1]][cars[i]]!=-1){ if(road[dist[j-1]][dist[j]]-drive[cars[i]][dist[j]]-road[dist[j-1]][cars[i]]>0) mat[i][j]=road[dist[j-1]][dist[j]]-drive[cars[i]][dist[j]]-road[dist[j-1]][cars[i]]; } } int ret=0; int pre=0; for(i=0;i<d;i++){ ret+=road[pre][dist[i]]; pre=dist[i]; } int match1[MAXN],match2[MAXN]; ret-=kuhn_munkras(m,50,mat,match1,match2); return ret; } };
本文分享自華爲雲社區《10分鐘搞懂各種內存溢出案例!!(含完整源碼,建議收藏)》,作者:冰 河。 作爲程序員,多多少少都會遇到一些內存溢出的場景,如果你還沒遇到,說明你工作的年限可能比較短,或者你根本就是個假程序員!哈哈,開個玩笑。今天,我
ClickHouse以性能好被大家所熟知,而一個數據庫的性能優化是一個龐大的系統性工程。本文着眼於ClickHouse內部的基礎數據結構,以揭露ClickHouse性能優化的冰山一角。 在軟件工程中並不是所有的執行路徑都需要優化,只有關鍵執
本文分享自華爲雲社區《【華爲雲MySQL技術專欄】MySQL內存增長問題分析案例》,作者:GaussDB 數據庫。 前言 在現網環境中,偶爾會遇到客戶實例內存OOM(Out Of Memory,即內存耗盡或溢出)的情況。MySQL數據庫
背景 這兩年來大模型及其熱門,不僅各大廠家的模型層出不窮,各類RGA、Agent應用也花樣繁多。這也帶火了一批基礎設施,比如Langchain、向量數據庫(也叫矢量數據庫-Vector Database)等。現在市場上的向量庫種類特別繁多
文|苟振東(花名:盛知) Koupleless 項目 committer 螞蟻集團技術專家 本文 5789 字 閱讀 12 分鐘 本篇文章屬於 Koupleless 進階系列文章第二篇,默認讀者對 Koupleless 的基礎概念、能力都
1. 引言 在現代軟件開發過程中,性能優化和故障排查是保證應用穩定運行的關鍵任務之一。Java作爲一種廣泛使用的編程語言,其生態中湧現出了許多優秀的監控和診斷工具,諸如:SkyWalking、Zipkin等,它們幫助開發者和運維人員
· 前言 · 在國內,公網服務器與本地服務器的通信一直是個難題,本地服務器因爲IP是動態變化的,公網服務器沒辦法將請求發送給本地服務器。爲了解決這個問題,所以採用WebSocket協議替換Http協議。爲了實現請求等待,使用Gu
在這裏分享一下通過拖取 DataCube 代碼審計後發現的一些漏洞,包括前臺的文件上傳,信息泄露出賬號密碼,後臺的文件上傳。當然還有部分 SQL 注入漏洞,因爲 DataCube 採用的是 SQLite 的數據庫,所以SQL 注入相對來說顯
轉載自劉茫茫看山 問題背景 某天我們的租戶反饋數據庫連接缺少必要的驅動,我們通過日誌查看確實是缺少部分數據庫的驅動,因爲DolphinScheduler默認只帶了Oracle和MySQL的驅動,並且需要將pom文件中的test模式去掉纔可以
鴻蒙原生應用再新丁!新華社 入局鴻蒙 來自 #HarmonyOS# 微博5月27日消息 #鴻蒙千帆起#新華社客戶端完成鴻蒙原生應用核心版本開發,將實現不同使用場景下更加智能、精準、及時的要聞推送,以及主流價值的全場景覆蓋和高效傳播!與此同
記一次攻防演練中幸運的從若依弱口令到後臺getshell的過程和分析。 0x01 漏洞發現 首先,我會先把目標的二級域名拿去使用搜索引擎來搜索收集到包含這個目標二級域名的三級域名或者四級域名的網站。 這樣子可以快速的定位到你所要測試的漏洞
通過類之間的關係圖,讀懂spring boot原理 RequestBodyAdvice接口用於對Controller方法接收的請求體進行全局處理,可以在請求體被讀取之前或之後對請求體進行修改、包裝或添加一些額外的處理邏輯。下面是Req
鴻蒙原生應用再新丁!學習強國 入局鴻蒙 來自 #HarmonyOS# 微博5月23日消息 中央宣傳部宣傳輿情研究中心宣佈,將基於HarmonyOS NEXT鴻蒙星河版啓動“學習強國”App鴻蒙原生應用開發!“學習強國”App將爲鴻蒙生態帶