重新振作第16-18天----狂补作业

痛苦,焦虑,痛苦,想紫砂
补了个damn的作业啊

移动应用开发---通讯录

后面补

软件设计小实验

后面补

数据库实验11和12

实验12有毒,给的代码有一点问题,但是看不出来哪里有问题,跑不了一点。

汇编实验报告 1.5h

完成了一手实验,理解了一下,完成了实验报告

操作系统文献阅读PPT和记录 2h

具体看以下链接:
https://www.cnblogs.com/cdag/p/18583161

退役acmer的每日一题*12 1h 加 abc383 加第36次csp认证

每日一题

题目链接:https://atcoder.jp/contests/abc369/tasks/abc369_e
思路分析: 一开始,没看到n的范围。然后发现n只有400,直接就可以Floyd预处理好最短路,然后发现k是只有5的,然后我们对于k的所有排列遍历一遍,然后还有判断是首还是尾,这样直接就可以过了。可以看一下这位大哥的题解:https://blog.csdn.net/swan416/article/details/141759165
但是后面的话,我是用状压来实现的。
代码实现:

#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=3e5+10;
const int MAX=1e6+5;
const int mod=1E9+7;
int n,m,k,w;
void solve(){
    cin>>n>>m;
    vector<int>u(m+1,0),v(m+1,0),s(m+1,0);
    vector<vector<int>>f(n+1,vector<int>(n+1,1E18));
    for(int i=1;i<=n;i++)f[i][i]=0;
    for(int i=1;i<=m;i++){
        cin>>u[i]>>v[i]>>s[i];
        f[u[i]][v[i]]=min(s[i],f[u[i]][v[i]]);
        f[v[i]][u[i]]=min(s[i],f[v[i]][u[i]]);
    }
    // 计算多源头最短路
    for(int k=1;k<=n;k++){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                f[i][j]=min(f[i][j],f[i][k]+f[k][j]);
            }
        }
    }
    int q;
    cin>>q;
    while(q--){
        cin>>k;
        int a[k];
        for(int i=0;i<k;i++){
            cin>>a[i];
        }
        sort(a,a+k);
        int ans=1E18;
        do{
            for(int i=0;i<(1<<k);i++){
                int ft=1;
                int temp=0;
                for(int j=0;j<k;j++){
                    if((i>>j)&1){
                        temp+=f[ft][u[a[j]]]+s[a[j]];
                        ft=v[a[j]];
                    }
                    else {
                        temp+=f[ft][v[a[j]]]+s[a[j]];
                        ft=u[a[j]];
                    }
                }
                temp+=f[ft][n];
                ans=min(ans,temp);            
            }
        }while(next_permutation(a,a+k));
        cout<<ans<<endl;
        
    }
}
signed main(){
    ios;
    int t;
    t=1;
    //cin>>t;
    while (t--){
        solve();
    }
    return 0;
}

A

评价:水题
代码实现:

#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=3e5+10;
const int MAX=1e6+5;
const int mod=1E9+7;
int n,m,k,w;
void solve(){
    cin>>n;
    int ans=0,tt=0;
    while(n--){
        int t,x;
        cin>>t>>x;
        ans=max(0ll,ans+(tt-t));
        tt=t;
        ans+=x;
    }
    cout<<ans<<endl;
}
signed main(){
    ios;
    int t;
    t=1;
    //cin>>t;
    while (t--){
        solve();
    }
    return 0;
}

B

评价:水题
代码实现:

#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=3e5+10;
const int MAX=1e6+5;
const int mod=1E9+7;
int n,m,k,w;
void solve(){
    cin>>n>>m>>w;
    string s[n+1];
    for(int i=1;i<=n;i++){
        cin>>s[i];
        s[i]=' '+s[i];
    }
    vector<pair<int,int>>q;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(s[i][j]=='.'){
                q.push_back({i,j});
            }
        }
    }
    int ans=0;
    for(int i=0;i<q.size();i++){
        for(int j=i+1;j<q.size();j++){
            int temp=0;
            for(int ii=1;ii<=n;ii++){
                for(int jj=1;jj<=m;jj++){
                    if(s[ii][jj]=='.'){
                        if(abs(q[i].first-ii)+abs(q[i].second-jj)<=w
                        ||abs(q[j].first-ii)+abs(q[j].second-jj)<=w)
                        temp++;
                    }
                }
            }
            ans=max(ans,temp);
        }
    }
    cout<<ans<<endl;
}
signed main(){
    ios;
    int t;
    t=1;
    //cin>>t;
    while (t--){
        solve();
    }
    return 0;
}

C

评价:水题
代码实现:

#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=3e5+10;
const int MAX=1e6+5;
const int mod=1E9+7;
int n,m,k,w;
void solve(){
    cin>>n>>m>>w;
    string s[n+1];
    for(int i=1;i<=n;i++){
        cin>>s[i];
        s[i]=' '+s[i];
    }
    int vis[n+1][m+1];
    memset(vis,0,sizeof vis);
    queue<pair<int,int>>q;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(s[i][j]=='H'){
                q.push({i,j});
                vis[i][j]=1;
            }
        }
    }
    int dx[4]={0,0,-1,1};
    int dy[4]={-1,1,0,0};
    while (q.size())
    {
        int x=q.front().first;
        int y=q.front().second;
        q.pop();
        for(int i=0;i<4;i++){
            int tx=dx[i]+x;
            int ty=dy[i]+y;
            if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&!vis[tx][ty]&&s[tx][ty]=='.'&&vis[x][y]+1<=w+1){
                vis[tx][ty]=vis[x][y]+1;
                q.push({tx,ty});
            }
        }
    }
    int ans=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(vis[i][j]){
                ans++;
            }
        }
    }
    cout<<ans<<endl;
    
}
signed main(){
    ios;
    int t;
    t=1;
    //cin>>t;
    while (t--){
        solve();
    }
    return 0;
}

D

评价:数学思维
代码实现:

#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=2e6+10;
const int MAX=1e6+5;
const int mod=1E9+7;
int n,m,k,w;
int prime[4000010],cnt;
short flag[4000010];
void linear(int n) {
    int i, j;
    for (i = 2; i <= n; i++) {
        if (!flag[i]) prime[cnt++] = i;
        for (j = 0; j < cnt && i * prime[j] <= n; j++) {
            flag[i * prime[j]]++;//i*prime[j]的最小质因子时prime[j]
            if (i % prime[j] == 0) break;//i已经被筛过了
        }
    }
}
void solve(){
    cin>>n;
    int x=sqrtl(n);
    linear(N);
    int ans=0;
    //cout<<prime[0]<<' '<<prime[1]<<endl;
    // 两个质数的乘积
    for(int i=0;i<cnt;i++){
        for(int j=i+1;j<cnt;j++){
            if(prime[i]*prime[j]<=x){
                ans++;
                // cout<<prime[i]<<' '<<prime[j]<<endl;
            }
            else break;
        }
    }
    // 质数的平方 有3个 再次平方 5个 再次平方 9个
    for(int i=0;i<cnt;i++){
        if(sqrtl(sqrtl(sqrtl(n)))>=prime[i]){
            ans++;
        }
    }
    cout<<ans<<endl;
}
signed main(){
    ios;
    int t;
    t=1;
    //cin>>t;
    while (t--){
        solve();
    }
    return 0;
}

csp认证

已经心灰意冷,睡到中午十二点半起床,刷个牙,午饭都不吃就去打。当时就想着,已经没救了。然后打完发现430,,,,这真不是我太菜了吧,所以之前icpc的时候,真的不是我没有尽力,只是真的不能把希望放在其他人身上,与其期待别人能够出题,不如期待自己能够出题。

第1题水题,第二题不好说,感觉有点思维量,但是吧,也很快过了。半小时出两题。然后第三题思路想好的时候,差不多过去了40minutes了,是比赛开始1h10m,但是我写注释的时候竟然会闪退,什么破电脑,只要一敲当前???还有一些啥词,就会退出程序。然后代码白敲??????我人都崩溃了。。然后写一行保存一次,甚至写一个词保存一次,差不多在比赛开始2h的时候一发过了,第三题,思路也是差不多30分钟出来,但是一开始我使用的是set来维护,但是set在擦除后,使用auto,竟然会有奇怪的bug,我也不懂了,然后就换成了一个全局的cnt来维护。差不多在还剩50分钟的时候过了。第五题的话,一开始没想法,后面就想骗骗分吧,然后我就写了一个暴力的,拿来30分,然后还剩下20分钟。那个时候就在写小作文了,其实是有点想法的,但是当时思绪有点乱,就没有整理好,就没有尝试去写,因为我是想用前后缀的,后面他们说单调栈,发现确实,我的前缀也是维护从前开始的最小的。但是中间有点细节没有想好,就没有开始敲。

题解后面能查看答卷的时候发上来。

posted @   菜dog的日常生活  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
点击右上角即可分享
微信分享提示