ccf[201809-4]再賣菜-70分暴力
思路是深搜,然後根據他給的程式碼約束可以取的值減小一點複雜度,最後選夠了之後計算並與答案相比較,由於是從一開始搜的,那麼答案一定是字典序最小的,考試的時候打了個這個才30分,現在變成了70分,鬱悶啊...
加上這四十分我就差十分就會程式設計了..話說這次第三題沒寫,第四題可能是敲錯了?第五題暴力20分..簡直就是敲了一下午的暴力啊,等到大佬們發題解的時候在更新這個題的滿分題解...據說是DP?
下附程式碼敲得很凌亂將就著看算了
#include<iostream> using namespace std; int ans[301]; int ans1[301]; int select[301]; int n; int ok=0; bool check() { for(int i=1;i<=n;i++) { if(i==1) { ans1[i]=(select[i]+select[i+1])/2; } else if(i==n) { ans1[i]=(select[i]+select[i-1])/2; } else { ans1[i]=(select[i]+select[i-1]+select[i+1])/3; } } int flag=1; num++; for(int i=1;i<=n;i++) { if(ans[i]!=ans1[i]) { flag=0; break; } } return flag; } void dfs(int x) { if(ok) return; if(x==n+1) { if(check()) { for(int i=1;i<=n;i++) cout<<select[i]<<" "; ok=1; return; } return; } if(x==1) { for(int i=1;i<=ans[1]*2;i++) { select[x]=i; dfs(x+1); } return; } else if(x==2) { for(int i=ans[1]*2-select[1];i<=ans[1]*2+1-select[1];i++) { if(i>0) { select[x]=i; dfs(x+1); } } return; } else if(x>2) { for(int i=ans[x-1]*3-select[x-1]-select[x-2];i<=2+ans[x-1]*3-select[x-1]-select[x-2];i++) { if(i>0) { select[x]=i; dfs(x+1); } } return; } } int main() { cin>>n; for(int i=1;i<=n;i++) cin>>ans[i]; dfs(1); return 0; }
相關推薦
ccf[201809-4]再賣菜-70分暴力
思路是深搜,然後根據他給的程式碼約束可以取的值減小一點複雜度,最後選夠了之後計算並與答案相比較,由於是從一開始搜的,那麼答案一定是字典序最小的,考試的時候打了個這個才30分,現在變成了70分,鬱悶啊... 加上這四十分我就差十分就會程式設計了..話說這次第三題沒寫,第四題可
ccf 201809-4 再賣菜 java 100分
import java.util.Scanner; public class c20180904 { static int total; static int []first; static
ccf 201809-4 再賣菜
題意: 問題描述 在一條街上有n個賣菜的商店,按1至n的順序排成一排,這些商店都賣一種蔬菜。 第一天,每個商店都自己定了一個正整數的價格。店主們希望自己的菜價和其他商店的一致,第二天,每一家商店都會根據他自己和相鄰商店的價格調整自己的價格。具體的,每家商
201809-4 再賣菜(100分)
問題描述 在一條街上有n個賣菜的商店,按1至n的順序排成一排,這些商店都賣一種蔬菜。 第一天,每個商店都自己定了一個正整數的價格。店主們希望自己的菜價和其他商店的一致,第二天,每一家商店都會根據他自己和相鄰商店的價格調整自己的價格。具體的,每家商店都會將第二天的菜價設定為自己和相鄰商
CCF-CSP201809-4 再賣菜
問題描述: 試題編號: 201809-4 試題名稱: 再賣菜 時間限制: 1.0s 記憶體限制: 256.0MB 問題描述: 問題描述 在一條街上有n個賣菜的商店,按1至n的順序排成一排,這些商店都賣一種蔬菜
CCF認證-201809-4 再買菜(70分)
CCF認證-201809-4 思路:沒有很好的思路,就暴力了拿了70分,還沒有滿分,還會再更新的。 問題描述 試題編號: 201809-4 試題名稱: 再賣菜
CSP201809-4 再賣菜
目錄 CSP201809-4 再賣菜 60分dfs 100分建立差分約束系統 CSP201809-4 再賣菜 這場打完就忘記了。當時這題一直在想怎麼建立差分約束系統,最後沒建出來0分,隊友搜尋暴力剪紙可能還有記憶化過的,其他人有的都是搜尋拿的幾十分, 用最暴力的寫
【CCF 201809-4】再買菜(差分約束/DP)
題意 問題描述 在一條街上有n個賣菜的商店,按1至n的順序排成一排,這些商店都賣一種蔬菜。 第一天,每個商店都自己定了一個正整數的價格。店主們希望自己的菜價和其他商店的一致,第二天,每一家商店都會根據他自己和相鄰商店的價格調整自己的價格。具體的,每家商店都會將第二
ccf再賣菜
這題一看就是暴搜,想都不想就寫了個暴搜程式(不考慮複雜度),但這題正解應該是記憶化搜尋。。 已知a[n],求b[n],其中a[n]是所給資料,b[n]是要求的菜價 其中有 (b[n-1]+b[n]+b[n+1])/3=a[n](n表示第n天菜價) 所以b[n+1]=
CCF認證 2018-09 再賣菜
可以用dfs記憶化搜尋+剪枝 更穩的方法是用差分約束,因為會有三元一次的不等式,所以把不等式全部改為字首和的不等式 s[i]代表前i項的和,如a1+a2+a3>=b可改為s3-s0>=b,a1+a2+a3<=c改為s0-s3>=-c 以此類推,就
201809-1 賣菜(100分)
問題描述 在一條街上有n個賣菜的商店,按1至n的順序排成一排,這些商店都賣一種蔬菜。 第一天,每個商店都自己定了一個價格。店主們希望自己的菜價和其他商店的一致,第二天,每一家商店都會根據他自己和相鄰商店的價格調整自己的價格。具體的,每家商店都會將第二天的菜價設定為自己和相鄰商店第一天
CCF201809-4 再買菜
問題描述 在一條街上有n個賣菜的商店,按1至n的順序排成一排,這些商店都賣一種蔬菜。 第一天,每個商店都自己定了一個正整數的價格。店主們希望自己的菜價和其他商店的一致,第二天,每一家商店都會根據他自己和相鄰商店的價格調整自己的價格。具體的,每家商店都會將
CCF 201712-4 行車路線(100分)
宣告:CCF提交後得100分,但程式存在bug,過段時間修改 試題編號: 201712-4 試題名稱: 行車路線 時間限制: 1.0s 記憶體限制: 256.0MB 問題描述: 問題描述 小明和小芳出去鄉村玩
Cogs1264. [NOIP2012] 開車旅行(70分 暴力)
兩個 一次 std 內存 做出 簡單 對比 nbsp strong 1264. [NOIP2012] 開車旅行 ★★☆ 輸入文件:drive.in 輸出文件:drive.out 簡單對比時間限制:2 s 內存限制:128 MB 【題目描述】 小A 和小
ccf認證--201809-1 賣菜(100分)
CCF認證-201809-1 賣菜 思路:很簡單。 試題編號: 201809-1 試題名稱: 賣菜 時間限制: 1.0s 記憶體限制:
ccf 201712-4 行車路線(70分)
cin enter 修改 emp 增加 urn 心算 log info ccf 201712-4 行車路線 解題思路: 首先Dijkstra是基於貪心算法的,即每一次作出的選擇都具有貪心選擇性。此題由於有“如果連續走小道,小明的疲勞值會快速增加,連續走s公裏小明會增加s
CCF-201809-1-賣菜
思路: 這次ccf的前面兩題好水啊,思路簡單說下:第一題賣菜,題目意思是讓每個商店價格根據第一天來調整,第二天的價格是第一天自己和相鄰商店的價格平均值,所以就直接遍歷第一天的價格表,算出第二天的價格表 Java程式碼: import java.util.Scanner; pub
CCF CSP 201809-1 賣菜 題解
題目描述 題目來源 :http://118.190.20.162/view.page?gpid=T79 返回試題列表 問題描述 試題編號: 201809-1 試題名稱: 賣菜 時間限制
CCF————201809-1(賣菜)
問題描述 在一條街上有Ñ個賣菜的商店,按1至Ñ的順序排成一排,這些商店都賣一種蔬菜。 第一天,每個商店都自己定了一個價格。店主們希望自己的菜價和其他商店的一致,第二天,每一家商店都會根據他自己和相鄰商店的價格調整自己的價格。具體的,每家商店都會將第二天的菜價設定為自己
CCF 201712-4 90分
while limit ++ min ccf string pos ons markdown 90分,不知道錯在哪裏了,dijkstra算法,用一個數組的d[i]表示以i點結尾的小路的長度,以i點為中心擴展時,若下一點為k,如果i->k是小路,則 d[j] = d[k