cf1294总结

A题

无坑点

#include <algorithm>
#include <iostream>
using namespace std;
const int MAXN = 1e6+100;

int main() {
    int a,b,c,t,n;
    cin>>t;
    while(t--){
        int sum=0;
        cin>>a>>b>>c>>n;
        sum=a+b+c+n;
        if(sum%3==0){
            if(a>sum/3||b>sum/3||c>sum/3) cout<<"NO"<<endl;
            else cout<<"YES"<<endl;
        }else cout<<"NO"<<endl;
    }
    return 0;
}

B题

一个机器人,只能向上或者向右走,要把地图中所有的口袋拿到,求最短路径,按照字典序排列输出路径。

  • 我看这个这个数据范围不太大啊,为什么bfs就MLE了呢?一头扎进bfs心态崩了,如果有大佬用bfs做的还请留言指教。代码附上:
#include <algorithm>
#include <cstring>
#include <iostream>
#include <queue>
using namespace std;
const int MAXN = 1005;
int Data[MAXN][MAXN];
int r,d;
struct st{
    string s;
    int step;
    int num;
    int x,y;
};
int xx[]={1,0};
int yy[]={0,1};
int n;
void bfs(){
    queue<st> q;
    st now,Next;
    now.x=0;
    now.y=0;
    now.step=0;
    now.num=0;
    q.push(now);
    while(!q.empty()){
        now=q.front();
        q.pop();
        for(int i=0;i<2;i++){
            int dx=now.x+xx[i];
            int dy=now.y+yy[i];
            if(dx>r||dy>d) continue;
            Next=now;
            Next.x=dx;Next.y=dy;
            Next.step++;
            if(Data[dx][dy]) Next.num++;
            if(i==0) Next.s.push_back('R');
            else Next.s.push_back('U');
            if(Next.num==n){
                cout<<"YES"<<endl;
                cout<<Next.s<<endl;
                return;
            }
            q.push(Next);
        }
    }
    cout<<"NO"<<endl;
}
int main() {
    int t,x,y;
    cin>>t;
    while(t--){
        cin>>n;
        r=d=0;
        for(int i=0;i<n;i++) {
            cin>>x>>y;
            Data[x][y]=1;
            r=max(r,x);
            d=max(d,y);
        }
        bfs();
        memset(Data,0,sizeof Data);
    }
    return 0;
}
  • 正解是贪心,因为只有两种情况把坐标按x排个序就好了。
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
#include <deque>
#include <vector>
#include <map>
#include <list>
using namespace std;
const int MAXN = 1e3+100;
int xx[]={1,0};
int yy[]={0,1};
struct node{
    int x;
    int y;
};
node d[MAXN];
bool cmp(node x,node y){
    if(x.x==y.x) return x.y<y.y;
    return x.x<y.x;
}
int main() {
    int t,n,x,y;
    cin>>t;
    while(t--){
        string s="";
        bool flag=1;
        cin>>n;
        d[0].x=0;d[0].y=0;
        for(int i=1;i<=n;i++){
            cin>>x>>y;
            d[i].x=x;
            d[i].y=y;
        }sort(d,d+n+1,cmp);
        for(int i=0;i<n;i++){
            if(d[i].y>d[i+1].y) {
                flag=0;
                break;
            }else{
                for(int j=d[i].x;j<d[i+1].x;j++) s+='R';
                for(int j=d[i].y;j<d[i+1].y;j++) s+='U';
            }
        }if(flag) {
            cout<<"YES"<<endl;
            cout<<s<<endl;
        }
        else cout<<"NO"<<endl;
    }
    return 0;
}

C题

无坑点

#include <algorithm>
#include <iostream>
#include <cmath>
using namespace std;
const int MAXN = 1e6+100;

int main() {
    int t,n;
    cin>>t;
    while(t--){
        cin>>n;
        int tmp=pow(n,1.0/3);
        bool flag=false;
        for(int i=2;i<=tmp;i++){
            if(n%i==0){
                int c=sqrt(n/i);
                for(int j=i+1;j<=c;j++){
                    int temp=i*j;
                    if(n%temp==0&&j!=n/temp&&i!=n/temp) {
                        cout<<"YES"<<endl;
                        cout<<i<<' '<<j<<' '<<n/i/j<<endl;
                        flag=true;
                        break;
                    }
                }
                if(flag) break;
            }
        }
        if(!flag) cout<<"NO"<<endl;
    }
    return 0;
}

D题

碰到这题的第一感觉就是头大,但是题目看明白了也就不是太难了,怪我英文不好,但是这个题意真的让我理解了好久。

  • 题意是这样的,先给定一个数x,然后每次都输入一个数,用这些数字去填充一个空的数组,每添加一个数就是一次询问,询问的是这个数组当前非负的、最小的,满足这两种情况的最大值。x的作用是可以对数组中任意的数进行加或者减操作(任意次),操作之后数组也将随之改变。
    说实话读题比做题难多了。
  • 查询、加减什么的让人总是往线段树那里去想,但是这个问题真的没有那么复杂,我们可以这样来考虑:因为问的是最小可能性中的最大值,那么0,1,2,3等等等等这些都是要被填充的,哪个没被填充答案就是哪一个,又因为都是模x所以可以把这些数字按照模x的余数去分类,放在一个数组中去存储,然后呢,输出答案肯定是递增的,所以可以递推出来。
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
#include <deque>
#include <vector>
#include <map>
#include <list>
using namespace std;
const int MAXN = 1e6+100;
int dp[MAXN];
int main() {
    int q,x,n;
    cin>>q>>x;
    int ans=0;
    for(int i=0;i<q;i++){
        cin>>n;
        dp[n%x]++;
        while(dp[ans%x]){
            dp[ans%x]--;
            ans++;
        }
        cout<<ans<<endl;
    }
    return 0;
}

E题

给你一个二维数组可以进行两种操作,第一种是把某一个位置的数字改成任意数字,第二种是把某一列数字整体循环上移一个单位,也就是说第一个位置的挪到最后一个位置第二个位置到第一个位置以此类推:在这里插入图片描述
那么移动到下面这种状态需要最少多少步。 在这里插入图片描述

  • 读懂题目意思是关键,乍一看好像八数码,直接want to die,但是仔细一看就这么两种操作,我们至少可以获取到这样几个信息:
    1.设m行n列,大不了一个一个换,最多n*m步;
    2.每次的操作不会涉及行与行之间的操作,肯定是列内部进行的某些操作,每一列最多移动m次。
  • 这样就可以得到思路:枚举每列达到目标状态的最小步骤,然后全加起来应该就行。
  • 最后注意一点:数据范围是m*n<=2×105
#include <algorithm>
#include <iostream>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <queue>
#include <deque>
#include <vector>
#include <map>
#include <list>
using namespace std;
const int MAXN = 1e3+100;
int main() {
    int m,n;
    cin>>n>>m;
    int Data[n][m];
    int Array[n];
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++) cin>>Data[i][j];
    }
    int ans=0;
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++) Array[j]=0;
        for(int j=0;j<n;j++){
            if((Data[j][i]-1-i)%m==0&&Data[j][i]<=n*m){
                int pos_right=(Data[j][i]-1)/m;//正确位置
                int distance=j-pos_right;//需要移动多少步,正数就是向上,负数就是向下
                if(distance<0) distance+=n;
                Array[distance]++;//统计某个步数有多少数字
            }
        }
        int INF=0x3f3f3f3f;
        for(int j=0;j<n;j++) INF=min(INF,j+n-Array[j]);//枚举j次移动,该列所有元素达到目标状态的次数
        //m-cnt[j]是不能通过移动达到目标状态的数字量,这些数字只能通过第一种操作来完成改变
        ans+=INF;
    }cout<<ans;
    return 0;
}

树没学到,未完待续···

PS C:\Users\admin> cd D:\download\RedDino-main PS D:\download\RedDino-main> pip install -r requirements.txt Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple, https://download.pytorch.org/whl/cu117, https://pypi.nvidia.com Requirement already satisfied: torch>=2.6.0 in c:\users\admin\anaconda3\lib\site-packages (from -r requirements.txt (line 2)) (2.9.1) Collecting torchvision>=0.21.0 (from -r requirements.txt (line 3)) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/5c/ec/54a96ae9ab6a0dd66d4bba27771f892e36478a9c3489fa56e51c70abcc4d/torchvision-0.24.1-cp313-cp313-win_amd64.whl (4.3 MB) Collecting omegaconf (from -r requirements.txt (line 4)) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/e3/94/1843518e420fa3ed6919835845df698c7e27e183cb997394e4a670973a65/omegaconf-2.3.0-py3-none-any.whl (79 kB) Collecting torchmetrics==0.10.3 (from -r requirements.txt (line 5)) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/08/b7/f1e49be0e076c8ec981f1d4cea1f32da2bd754eaeaf6ed74d5add3f840b4/torchmetrics-0.10.3-py3-none-any.whl (529 kB) Collecting fvcore (from -r requirements.txt (line 6)) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/a5/93/d056a9c4efc6c79ba7b5159cc66bb436db93d2cc46dca18ed65c59cc8e4e/fvcore-0.1.5.post20221221.tar.gz (50 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Collecting iopath (from -r requirements.txt (line 7)) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/72/73/b3d451dfc523756cf177d3ebb0af76dc7751b341c60e2a21871be400ae29/iopath-0.1.10.tar.gz (42 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Collecting xformers>=0.0.22 (from -r requirements.txt (line 8)) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/a9/ef/4f59589fe37e206f5bb6158aa1294cfa0e79d52bca99ea0fd3f5c8a73404/xformers-0.0.33.post1-cp39-abi3-win_amd64.whl (105.1 MB) Collecting submitit (from -r requirements.txt (line 9)) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/db/80/90e0a0f4008f6572de58b042b1db9daced15d348a3586dda5efc9faba65e/submitit-1.5.3-py3-none-any.whl (75 kB) Requirement already satisfied: numpy>=1.17.2 in c:\users\admin\anaconda3\lib\site-packages (from torchmetrics==0.10.3->-r requirements.txt (line 5)) (2.1.3) Requirement already satisfied: packaging in c:\users\admin\anaconda3\lib\site-packages (from torchmetrics==0.10.3->-r requirements.txt (line 5)) (24.2) Requirement already satisfied: filelock in c:\users\admin\anaconda3\lib\site-packages (from torch>=2.6.0->-r requirements.txt (line 2)) (3.17.0) Requirement already satisfied: typing-extensions>=4.10.0 in c:\users\admin\anaconda3\lib\site-packages (from torch>=2.6.0->-r requirements.txt (line 2)) (4.12.2) Requirement already satisfied: sympy>=1.13.3 in c:\users\admin\anaconda3\lib\site-packages (from torch>=2.6.0->-r requirements.txt (line 2)) (1.13.3) Requirement already satisfied: networkx>=2.5.1 in c:\users\admin\anaconda3\lib\site-packages (from torch>=2.6.0->-r requirements.txt (line 2)) (3.4.2) Requirement already satisfied: jinja2 in c:\users\admin\anaconda3\lib\site-packages (from torch>=2.6.0->-r requirements.txt (line 2)) (3.1.6) Requirement already satisfied: fsspec>=0.8.5 in c:\users\admin\anaconda3\lib\site-packages (from torch>=2.6.0->-r requirements.txt (line 2)) (2025.3.2) Requirement already satisfied: setuptools in c:\users\admin\anaconda3\lib\site-packages (from torch>=2.6.0->-r requirements.txt (line 2)) (72.1.0) Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in c:\users\admin\anaconda3\lib\site-packages (from torchvision>=0.21.0->-r requirements.txt (line 3)) (11.1.0) Collecting antlr4-python3-runtime==4.9.* (from omegaconf->-r requirements.txt (line 4)) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/3e/38/7859ff46355f76f8d19459005ca000b6e7012f2f1ca597746cbcd1fbfe5e/antlr4-python3-runtime-4.9.3.tar.gz (117 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Requirement already satisfied: PyYAML>=5.1.0 in c:\users\admin\anaconda3\lib\site-packages (from omegaconf->-r requirements.txt (line 4)) (6.0.2) Collecting yacs>=0.1.6 (from fvcore->-r requirements.txt (line 6)) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/38/4f/fe9a4d472aa867878ce3bb7efb16654c5d63672b86dc0e6e953a67018433/yacs-0.1.8-py3-none-any.whl (14 kB) Requirement already satisfied: tqdm in c:\users\admin\anaconda3\lib\site-packages (from fvcore->-r requirements.txt (line 6)) (4.67.1) Collecting termcolor>=1.1 (from fvcore->-r requirements.txt (line 6)) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/f9/d5/141f53d7c1eb2a80e6d3e9a390228c3222c27705cbe7f048d3623053f3ca/termcolor-3.2.0-py3-none-any.whl (7.7 kB) Requirement already satisfied: tabulate in c:\users\admin\anaconda3\lib\site-packages (from fvcore->-r requirements.txt (line 6)) (0.9.0) Collecting portalocker (from iopath->-r requirements.txt (line 7)) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/4b/a6/38c8e2f318bf67d338f4d629e93b0b4b9af331f455f0390ea8ce4a099b26/portalocker-3.2.0-py3-none-any.whl (22 kB) INFO: pip is looking at multiple versions of xformers to determine which version is compatible with other requirements. This could take a while. Collecting xformers>=0.0.22 (from -r requirements.txt (line 8)) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/d4/4d/40daad1068fb19291598bb656d7441c157bd04803c3534df05641889730e/xformers-0.0.33-cp39-abi3-win_amd64.whl (8.3 MB) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/50/19/ea64609a535f87a44cb177dc37c6d6a58f6d540adfff819d565fb0657cf7/xformers-0.0.32.post2-cp39-abi3-win_amd64.whl (100.2 MB) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/91/70/7dee5a786d77a63cf20dac60c38086bd2202d59ae89c8acef0ef6331c374/xformers-0.0.32.post1-cp39-abi3-win_amd64.whl (100.2 MB) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/ff/ba/e953b24cc6e1ac3798d8ac16565b0c63c050df3b8130df752e70e1ce98ed/xformers-0.0.31.post1-cp39-abi3-win_amd64.whl (100.2 MB) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/b5/66/7b60ec52da94a0da3383ba385b43e42cee8854c001b5cb6cf98a909665c8/xformers-0.0.31-cp39-abi3-win_amd64.whl (100.2 MB) Using cached https://pypi.tuna.tsinghua.edu.cn/packages/bf/f7/dd2269cce89fd1221947dd7cc3a60707ffe721ef55c1803ac3b1a1f7ae5c/xformers-0.0.30.tar.gz (10.2 MB) Installing build dependencies ... done Getting requirements to build wheel ... error error: subprocess-exited-with-error × Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> [23 lines of output] Traceback (most recent call last): File "C:\Users\admin\anaconda3\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 389, in <module> main() ~~~~^^ File "C:\Users\admin\anaconda3\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 373, in main json_out["return_val"] = hook(**hook_input["kwargs"]) ~~~~^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\admin\anaconda3\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 143, in get_requires_for_build_wheel return hook(config_settings) File "C:\Users\admin\AppData\Local\Temp\pip-build-env-qegqy3qh\overlay\Lib\site-packages\setuptools\build_meta.py", line 331, in get_requires_for_build_wheel return self._get_build_requires(config_settings, requirements=[]) ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\admin\AppData\Local\Temp\pip-build-env-qegqy3qh\overlay\Lib\site-packages\setuptools\build_meta.py", line 301, in _get_build_requires self.run_setup() ~~~~~~~~~~~~~~^^ File "C:\Users\admin\AppData\Local\Temp\pip-build-env-qegqy3qh\overlay\Lib\site-packages\setuptools\build_meta.py", line 512, in run_setup super().run_setup(setup_script=setup_script) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\admin\AppData\Local\Temp\pip-build-env-qegqy3qh\overlay\Lib\site-packages\setuptools\build_meta.py", line 317, in run_setup exec(code, locals()) ~~~~^^^^^^^^^^^^^^^^ File "<string>", line 24, in <module> ModuleNotFoundError: No module named 'torch' [end of output] note: This error originates from a subprocess, and is likely not a problem wi
最新发布
11-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Clarence Liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值