考試 8 18 未完成

2022-08-13 22:30:21 字數 2077 閱讀 8061

一場爆零的考試。

記住這個慘痛的教訓。

1>心有靈犀

大意:給你乙個不超過 10^9 的數字 n 和乙個交換次數上限 k,

每次操作對這個 數字 n 的其中兩位進行交換,

求出交換後最 大的數字和最小的數字的差的絕對值。

要點:1. 某一位的數字可以和它本身進行交換

2. 交換的數字不可以有前導零(即第一位不可以是 0)

解法:1)如果這個數字是 n 位數,那麼其交換不超過 n-1 次就可以變成最大值和最小值

可以根據這個點進行剪枝。

2)題目給的數字不超過 10^9,那麼進行全排列直接暴力就好了, 時間複雜度最多 9!

我是怎麼爆零的:貪心......

以後記得先算最大的時間複雜度,再貪心......

#include#include

#include

#include

#include

#include

using

namespace

std;

string

n;int k,len,d[13

];void

work()

int mn=d[0

];

for(int i=1;i3)+(mn<<1)+d[i];

printf(

"%d\n

",mx-mn);

}string

ans_mx,ans_mn;

void dfs(string nw,int tm,int

pos)

else

if(pos>=len) return

;

else

dfs(nw,tm,pos+1

); }

}int

main()

}return0;

}

2>不服來戰

你有一列 n 盞燈,初始時有些是開的,有些是關的。

每盞燈有各自的權值。每次操作你可以改變任意連續 k 盞燈的開關狀態。

你可以操作任意多次,求最終 最大的 亮著的燈的權值和。

解法:轉換思路:每次改變連續k盞燈,

那麼分為操作一次和連著操作兩次:

1)改變 i - i+k-1 盞燈的狀態

2)改變 i 和 i+k 的狀態

然後發現:可以將燈進行分組:

1,1+k,1+k*2,1+k*3...

1,2,2+k,2+k*2...

組與組之間(除了開頭與結尾的 兩個點 以外)沒有影響!

再稍作分析,不難發現,如果一組內「初始時是關的」的燈為偶數個,

那麼我們可以 做到只把它們全部開啟;

如果一組內「初始時是關的」 的燈為奇數個,這個時候我們不能把所有的燈都開啟,只好作出讓步,選擇放棄亮度最小 的那盞燈。

每一組都如此處理,最後加起來。

關於開頭結尾兩個點,我們通過列舉 是否在開始時^(1-k)個點的狀態,那麼最後的點就會隨之改變

(其實不太懂這一段)

#include#include

#include

using

namespace

std;

intt,n,k,sum;

const

int n=1003

;bool

f[n];

intv[n];

intget()

if(cnt) nw-=mn;

}return

nw;}

intmain()

for(int i=1;i<=n;i++)

scanf("%d

",&v[i]),sum+=v[i];

int ans=get

();

for(int i=1;i<=k;i++) f[i]^=1

; ans=max(ans,get

());

printf(

"%d\n

",ans);

}return0;

}

3>鐵路網路

等下

未完成作業

分治 1.一元三次方程求解 1015 2.迴圈比賽日程表 3.求方程的根 5.黑白棋子的移動 1310 6.光榮的夢想 2323 7.小車問題 1668 8.方程分f x 的根 9.求逆序對 1198 10.迴圈比賽 11.二分查詢 1135 12.麥森數 1030 動態規劃 挖地雷 取數字問題 搜...

通訊 未完成

網路程式設計對於後端開發來說也是非常重要的一部分,常見的使用案例包含,郵件 web伺服器 rpc等底層通訊模型都離不開通訊。及j a是第乙個從一開始就為網路應用而設計的程式語言,最早的兩個實用j a應用的程式之一就是web瀏覽器,隨著internet的不斷發展,j a成為了唯一適合構建下一代網路應用...

OpenTLD 未完成 虎頭

tld是一種演算法的簡稱,原作者把它叫做tracking learning detection。搞視覺的人看到這個名字都會嚇一跳,很ambitious的計畫。是09年的工作,不算太久,不過也不太新。網上關於這個的資源其實很多,很大程度和作者開放源 有關。學習過程中碰到的第乙個問題就是資源太多 當然是...