雖然早上說要振作,但是還是沒有振作起來。。。。。。。從早上七點醒來後,然後睡了一個回籠覺,直接睡到下午五點,然後就emmmm,不得不去補作業了。學習通的24小時作業截止通知已經發了,然後就去楊詠曼了。
- 六級單詞
- 資料庫實驗
- 退役acmer的每日一題5
- A
- B
- C
- D
六級單詞
照常背背單詞,其他無。。。。。。
資料庫實驗
雖然資料庫實驗並沒有很難,但是課程要求的data studio這個軟體是真的不好用。有時候點選執行,並沒有反應。但是吧,透過這幾次實驗的驗證。我發現了為什麼會這樣的原因了。每次在運動程式碼前,要進行儲存。否則,這個軟體執行的是未修改前的程式碼。雖然很玄乎,但是實踐出來的規律就是這樣的。奇奇怪怪的,也可能和data studio的版本有所關係。我的版本有點低的。
從下午五點開始,中間8-10點打了一場atcoder,然後繼續實驗報告,寫到晚上2點,完美完成五分實驗報告。別問為什麼是五份實驗報告,要問就只能說,沒有ddl的加持,感覺只想擺爛。
但從明天,大機率是不能擺爛了,期末月了。再不趕緊補作業就真的寄寄了,我還查一堆作業沒有寫。寄寄!
退役acmer的每日一題5
由於今天有atcoder,那麼今天的每日一題就是atcoer了。
總結一下這次的atcoder。43分鐘結束D題,然後接下來一個小時,在E的支配下坐牢。有1說1,求期望的題目真的不是我的強項,沒有那個數學功底哇。然後最後,等榜結束之後,發現emmm題目難度和分值對不上,F題過的比E要多很多。所以其實應該做F的。。。。。。。下次一定看著榜打。但說實話,atcoder的難度分配感覺不太合適。前面太水,後面幾題又有點toooooo hard(僅針對於本人)。
A
題目連結:https://atcoder.jp/contests/abc382/tasks/abc382_a
思路: 按照題目說的,直接模擬即可
程式碼實現:
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
const int N=5e5+10;
const int MAX=1e6+5;
const int mod=1E9+7;
int n,m,k,w;
void solve(){
cin>>n>>m;
string s;
cin>>s;
s=' '+s;
int cnt=0;
for(int i=1;i<=n;i++){
if(s[i]=='.'){
cnt++;
}
}
cout<<min(n,cnt+m)<<endl;
}
signed main(){
int t;
t=1;
//cin>>t;
while (t--){
solve();
}
return 0;
}
B
題目連結:https://atcoder.jp/contests/abc382/tasks/abc382_b
思路: 一樣是無腦題,隨便模擬一下
程式碼實現:
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
const int N=5e5+10;
const int MAX=1e6+5;
const int mod=1E9+7;
int n,m,k,w;
void solve(){
cin>>n>>m;
string s;
cin>>s;
s=' '+s;
int cnt=0;
for(int i=1;i<=n;i++){
if(s[i]=='.'){
cnt++;
}
}
int x=n-min(n,cnt+m);
for(int i=1;i<=n;i++){
if(x&&s[i]=='@'){
cout<<'@';
x--;
}
else cout<<'.';
}
cout<<endl;
}
signed main(){
int t;
t=1;
//cin>>t;
while (t--){
solve();
}
return 0;
}
C
題目連結:https://atcoder.jp/contests/abc382/tasks/abc382_c
思路: emmm也是水題,但是有點思維量,先對題中所說的美味值從大到小排序,然後類似於雙指標一樣的處理,不過是在不同的陣列中滑動。
程式碼實現:
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
const int N=5e5+10;
const int MAX=1e6+5;
const int mod=1E9+7;
int n,m,k,w;
void solve(){
cin>>n>>m;
vector<int>a(n+1,0);
vector<pair<int,int>>b(m+1);
vector<int>ans(m+1,-1);
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=m;i++){
cin>>b[i].first;
b[i].second=i;
}
sort(b.begin()+1,b.begin()+1+m,greater<pair<int,int>>());
int j=1;
for(int i=1;i<=n;i++){
while(a[i]<=b[j].first&&j<=m){
ans[b[j].second]=i;
j++;
}
}
for(int i=1;i<=m;i++){
cout<<ans[i]<<endl;
}
}
signed main(){
int t;
t=1;
//cin>>t;
while (t--){
solve();
}
return 0;
}
D
題目連結:https://atcoder.jp/contests/abc382/tasks/abc382_d
思路: 不得不說,atcoder的英文題目真的抽象,不知道是不是語言習慣的問題,這個英語太抽象了。直接跟著題意dfs即可。
程式碼實現:
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
const int N=5e5+10;
const int MAX=1e6+5;
const int mod=1E9+7;
int n,m,k,w;
int ans;
int a[N][20];
int a1[20];
void dfs(int x,int cnt,int s){
for(int i=10;i<=m;i++){
if(10*(n-cnt-1)+x>m){
break;
}
else {
if(cnt==n-1){
a1[0]=s;
for(int i=0;i<n;i++){
a[ans][i]=a1[i];
}
ans++;
return;
}
a1[cnt+1]=x+i;
dfs(x+i,cnt+1,s);
}
}
}
void solve(){
cin>>n>>m;
for(int i=1;i<=m;i++){
dfs(i,0,i);
}
cout<<ans<<endl;
for(int i=0;i<ans;i++){
for(int j=0;j<n;j++){
cout<<a[i][j]<<' ';
}
cout<<'\n';
}
}
signed main(){
int t;
t=1;
//cin>>t;
while (t--){
solve();
}
return 0;
}