重新振作第14天----忽如一夜春風來,千樹萬樹梨花開

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

還是很離譜,作業寫不完了要。我很討厭寫自己不喜歡的作業。而且也很煩,一堆亂七八糟的事情。越想越煩,越想越不想做,只想die,痛苦面具了都要。

目錄
  • pre 30mintues
  • 六級肯定是要準備的 2h
  • 作業系統文獻閱讀+腦圖 2h
  • 作業系統實驗報告 1h
  • 作業系統思政報告 1.5 h
  • 移動應用開發實驗
  • 科研找導師一敘
  • 退役acmer的每日一題

pre 30mintues

應友人之邀,分享了一點東西

六級肯定是要準備的 2h

單詞 100 個
閱讀 3篇(沒有,明天補)
範文看5篇(沒有,明天補)

作業系統文獻閱讀+腦圖 2h

看懂了,看完了,看明白了60+%的內容。因為有些很細節的地方,可以瘋狂去擴充套件。所以在文獻主要內容的理解方面,應該是50-70%之間,比如說設計概念和理論級實現,微操級實現這得有程式碼。

作業系統實驗報告 1h

作業系統的實驗,說實話,就比較水。說不上來,可能是培養體系的問題,大部分都是cv。而且課程也很滿,都放到這個時候,想學也學不到啥東西。

作業系統思政報告 1.5 h

藉助chat和網路圖片以及相應的文獻,花費了點時間。問題是一開始我endnote匯入相應的文獻的時候,也突然降智了,只修改了endnotes,沒有對於word中的選項進行修改。白白浪費了大把的時間。

移動應用開發實驗

先欠著,真的速度慢,感覺寫不完作業了。

科研找導師一敘

鬼知道,突然說了一堆的作業ddl,我連文獻都沒看。找個damn的老師啊!

退役acmer的每日一題

題目連結:https://atcoder.jp/contests/abc365/tasks/abc365_e
題目思路:首先,想到位運算的獨立性,我們按位來進行求解,給出一連串10,然後求所有長度至少為2的子串的異或和。首先如果以第i個結尾的子串集合有cnt[i][0]個零,有cnt[i][1]個1,那麼在此基礎上,對於第i+1個結尾的子串,如果是0,那麼cnt[i+1][1]=cnt[i][1],cnt[i+1][0]=cnt[i][0]+1,如果是1,那麼cnt[i+1][1]=cnt[i][0]+1,cnt[i+1][0]=cnt[i][1]。同時,我們注意,在計算答案是,我們不能使用當前的,因為當前的包括了以當前字元為串,即長度為1的子串。所以每次都是使用前者的。
我這個方法,是透過一個遞推的形式得出來的。而對於數學好的同學,可以看看這麼這個大哥的題解。
這位大哥的數學推導感覺很不錯:https://www.cnblogs.com/snapyust/p/18341238
程式碼實現:

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define ios ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)
using namespace std;
const int N=2e5+10;
const int MAX=1e6+5;
const int mod=1E9+7;
int n,m,k,w;
void solve(){
    int ans=0;
    cin>>n;
    vector<int>a(n+1,0);
    vector<vector<int>>cnt(n+1,vector<int>(2,0));
    for(int i=1;i<=n;i++)cin>>a[i];

    for(int j=0;j<=30;j++){
        cnt[0][0]=cnt[1][0]=0;
        int t=1<<j;
        for(int i=1;i<=n;i++){
            cnt[i][0]=cnt[i-1][0];
            cnt[i][1]=cnt[i-1][1];
            if((a[i]>>j)&1){
                swap(cnt[i][0],cnt[i][1]);
                cnt[i][1]++;
                ans+=cnt[i-1][0]*t;
            }
            else {
                cnt[i][0]++;
                ans+=cnt[i-1][1]*t;
            }
        }
    }
    cout<<ans<<endl;

}
signed main(){
    ios;
    int t;
    t=1;
    //cin>>t;
    while (t--){
        solve();
    }
    return 0;
}

相關文章