簡單題意
多組資料,對於每組資料,有n項作業,每天只能完成一項作業,每項作業都有乙個ddl和分值,求沒完成的作業的分值之和。輸入第一行為t,表示t組資料,對於每組資料,第一行為n,第二行為n個數,表示ddl,第三行為n個數,表示作業的分值。
思路對於一組資料,先按ddl進行一下排序,然後我們從後往前處理,從最長的ddl開始處理,在第k天,可以寫的作業只有ddl>=k的,所以我們只需要從這些作業中找乙個分值最大的寫,寫完乙個後,k–就可以,直至k為0。
**
#include
#include
using
namespace std;
struct ddl
;bool
compare
(const ddl &m,
const ddl &n)
intmain()
}if(max!=0)
b[l]
=day;
} ans=0;
for(
int i=
0;i(b[i]==0
) ans=ans+a[i]
.y; cout<}return0;
}
簡單題意
四個數列,從每個數列中取乙個數,求四個數的和為0的情況共有多少種。當乙個數列中有多個相同的數字的時候,把它們當做不同的數對待。輸入格式第一行為n,接下來n行,每行四個數,表示a[i],b[i],c[i],d[i]。
思路四個數列不好處理,我們先將其處理為兩個數列,然後兩個數列進行比較,因為處理為兩個數列後較大,所以我們將乙個數列a排序後,另外乙個數列b使用二分法查詢自己在數列a中的位置,(l,r),若區間不為空,答案ans=ans+r-l+1。
**
#include
#include
#include
#include
using
namespace std;
int a[
5000
],b[
5000
],c[
5000
],d[
5000];
int x[
20000000
],y[
20000010];
int tot=0;
inthead
(int key)
else
if(x[mid]
>key)
r=mid;
else
l=mid+1;
}return ans;
}int
tail
(int key)
else
if(x[mid]
>key)
r=mid;
else
l=mid+1;
}return ans;
}int
main()
sort
(x,x+tot)
; ans=0;
for(
int i=
0;i) cout
}
簡單題意
多組資料,對於一組資料,給定乙個 n 個數的陣列 a[n],並用這個陣列生成乙個新陣列 ans[n]。新陣列定義為對於任意的 i, j 且 i != j,均有 ans = abs(a[i] - a[j]),1 <= i < j <= n。試求出這個新陣列的中位數,中位數即為排序之後 (len+1)/2 位置對應的數字,』/』 為下取整。輸入格式為第一行為n,第二行為n個數,表示a[i]。
思路根據資料範圍,不能直接模擬出ans陣列,但是我們發現,答案是在0~a[n]-a[1]之間的,所以我們可以二分答案,陣列a先進行排序,然後對於mid,若a[i]+mid**
#include
#include
#include
using
namespace std;
int n;
int a[
100010];
intgetnum()
while
(ch>=
'0'&& ch<=
'9')
return x;
}int
find
(int x)}if
(sum!=0)
ans=ans+sum-i;
}return ans;
}int
main()
ans=
find
(l);
if(ans>=sum)
cout
cout<}}
第四周作業
第四周實驗作業 1.完成課本每乙個程式設計題。要求先畫出流程演算法圖或n s圖,然後程式設計實現,有可能的話使用兩種以上方法 1.1求自然對數e的近似值 include using namespace std int main cout 1.2求圓周率 的近似值 include using name...
第四周作業
實驗作業1.完成課本每乙個程式設計題。要求先畫出流程演算法圖或n s圖,然後程式設計實現,有可能的話使用兩種以上方法 2.程式設計求 百錢百雞 問題。雞翁一值錢五,雞母 一值錢三,雞雛三值錢一。百錢買百雞,問雞翁 雞母 雞雛各幾何?3.程式設計輸入乙個整數,計算它是幾位數字,分別輸出每一位數字,並輸...
第四周作業
實驗作業1.完成課本每乙個程式設計題。要求先畫出流程演算法圖或n s圖,然後程式設計實現,有可能的話使用兩種以上方法 2.程式設計求 百錢百雞 問題。雞翁一值錢五,雞母 一值錢三,雞雛三值錢一。百錢買百雞,問雞翁 雞母 雞雛各幾何?3.程式設計輸入乙個整數,計算它是幾位數字,分別輸出每一位數字,並輸...