題意:給乙個陣列,對他重新排序,使其相鄰兩數的差值不斷遞增
題解:給陣列從小到大排序,差值最小的是中間的兩個數,然後再向兩端延伸,能保證差值是增大的
然後再根據n的奇偶性判斷一下
#include#includeview code#include
#include
using
namespace
std;
int a[100010
];int
main()
sort(a+1,a+1+n);
intfront,back;
if(n&1
)else
while(front>=1||back<=n)
if(back<=n)
back++,front--;
}cout
<
}return0;
}
題意:給陣列,在第x秒可以對陣列中任意元素加2x-1,求使陣列變成非遞減數列的最少秒數
題解:將陣列變成遞增數列,則陣列任意位置的元素都比它前面最大的元素大,所以找前面最大的元素
如果最大的元素比他小不用操作,比它大,求差值,找到所有差值裡最大的,再求所需要的時間
#include#includeview code#include
#include
using
namespace
std;
int a[100010
];int
main()
maxx=a[1
];
for(int i=1;i<=n;i++)
if(dff==0
)else}}
}return0;
}
題意:**認為財產大於等於x就是富人,給n個人的財富狀況,**可以從中選人,把這些人的財產平均一下
求最多的富人數
題解:對這n個人的財富狀況進行從大到小的排序,對前i個人的財富值求平均值,若平均值大於等於x,則這i個
人可以變成富人,求最大的i
#include#includeview code#include
#include
using
namespace
std;
typedef
long
long
ll;ll a[
100010
];bool cmp(int a,int
b) int
main()
sort(a+1,a+1+n,cmp);
if(a[1]//
最大值小於x 沒有富人
cout<
<
}else
}
cout}}
return0;
}
題意:有n個怪物圍成乙個圈,第i個怪物有a[i]滴血,每次射擊是怪物血量減一,死後**使第(i+1)怪物血量減b[i],
若第 (i+1) 個怪物也被炸死,也會對第(i+2)個怪物產生傷害,求使怪物全部死亡的最小射擊數
乙個怪物沒死,即c[i]>0就要補槍,找第乙個射殺的位置,使射擊數最小
#include#includeview code#include
#include
using
namespace
std;
typedef
long
long
ll;#define maxn 300010ll a[maxn],b[maxn],c[maxn];
intmain()
for(i=1;i<=n;i++)
else
if(c[i]>0) sum+=c[i]; //
補槍數
}
for(i=1;i<=n;i++)
else
}cout
}return0;
}
題意:給陣列a,b;陣列a中的元素只能包含0,1,-1,a中的元素可以通過aj=aj+ai(1<=i題解:如果a[i]b[i],就要使a[i]變小,判斷a[i]前面有沒有-1
#include#includeview code#include
#include
using
namespace
std;
int a[100005],b[100005
];int
main()
for(int i=0;i)
for(int i=0;i)
else
if(b[i]0
)
if(a[i]==1
)
if(a[i]==-1
) }
if(flag)
else
}return0;
}
訓練第三週之dp習題
個人感覺做dp題目就是求什麼就設什麼,dp i 陣列就是所求,然後找出子問題,寫出狀態轉移方程就差不多出來了這個題目思路很簡單,就是求子串最大和。但是就是要記錄開頭結尾還有如果相等記錄第乙個,讓我吃盡了苦頭。include include include include using namespac...
訓練3 習題10
題目 problem description 有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少種走法?input 輸入資料首先包含乙個整數n,表示測試例項的個數,然後是n行資料,每行包含乙個整數m 1 m 40 表示樓梯的級數。output 對於每個測試例項,請輸...
訓練3 習題16
題目 problem description 在一無限大的二維平面中,我們做如下假設 1 每次只能移動一格 2 不能向後走 假設你的目的地是 向上 那麼你可以向左走,可以向右走,也可以向上走,但是不可以向下走 3 走過的格仔立即塌陷無法再走第二次 求走n步不同的方案數 2種走法只要有一步不一樣,即被...