重新振作第10天----日常小記

菜dog的日常生活發表於2024-12-01

雖然早上說要振作,但是還是沒有振作起來。。。。。。。從早上七點醒來後,然後睡了一個回籠覺,直接睡到下午五點,然後就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;
}

相關文章