首页
关于
我
Search
1
洛谷 B2122 单词翻转 的wa问题
173 阅读
2
关于博客
119 阅读
3
在本地进行gpu训练的一些准备(不废话)
102 阅读
4
关于我想搭建服务器这件事
84 阅读
5
如果你读完题目不能第一时间想到异或,就应该好好学一下位运算了,这是个学习位运算的好时机.jpg
81 阅读
主页
技术博客
乱想
摄影
音乐
登录
Search
标签搜索
cpp
深度学习
cuda
C++
羔羊治小孩儿
累计撰写
10
篇文章
累计收到
4
条评论
首页
栏目
主页
技术博客
乱想
摄影
音乐
页面
关于
我
搜索到
3
篇与
的结果
2024-08-24
洛谷 P1980 [NOIP2013 普及组] 计数问题
原题链接 是我退化了吗,我记得大一的时候还是大二的时候做过这个,好像还是一道蓝桥杯的题(也有可能是一次模拟周赛的题)当时,记得用CPP超时,还是一道填空,然后我不得不用一些“脑筋急转弯”的思路去计算,计数是有规律的。今天感觉有点难想,于是想先写个暴力解解压,结果...AC了然后我不甘心,还是想看看这题如何更快解出#include <iostream> #include <algorithm> #include <string> #include <vector> using namespace std; // 暴力 int num_x(int num, int x) { int ans = 0; string tt = to_string(num); int length = tt.size(); vector<char> arr(tt.begin(), tt.end()); for (int i = 0; i < length; i++) { if (arr[i] - '0' == x) ans++; } return ans; } int main() { int in_a; int x; cin >> in_a >> x; int ans = 0; for (int i = 1; i <= in_a; i++) { ans += num_x(i, x); } cout << ans << endl; return 0; } 暴力nlogn算法logn不难发现,即使不用计算机,答案也很容易求出,如:n=728,x=7可以按照这样的思路:个位7:73个 7,17,...,727十位7:70个 70~79,170~179,...,670~679百位7:29个 700~728答案是172后续再补上 cy
2024年08月24日
67 阅读
0 评论
0 点赞
2024-08-24
洛谷 B2122 单词翻转 的wa问题
B2122 单词翻转题目描述小明同学写单词的时候喜欢反着写,比如 hello 他会写成 olleh。给出小明同学写的一个句子,请你将所有的单词复原。## 输入格式共一行,一个字符串表示句子,单词之间以空格分隔。输出格式每个单词一行。输入输出样例输入 #1olleh dlrow输出 #1hello world说明/提示句子长度不超过100,仅包含小写字母和空格,不存在多余的空格。这里题目要求,要读取一行的信息,包含空格,传统的cin遇到空格就结束了而这里读取的内容时,结束没有任何标志,就是几个空格隔开的字符串组合而成的大字符串所以考虑使用了 getline() 函数,可以读取这一行的信息,遇到回车才会结束。(坏也坏在这)报错信息:Wrong Answer.wrong answer On line 1 column 1, read (ASCII 13), expected s{card-default label="报错" width="80%"}{/card-default}我的代码:#include <iostream> #include <vector> #include <string> using namespace std; int main() { string in_a; getline(cin, in_a); // 读取整行,包括空格 vector<char> arr1(in_a.begin(), in_a.end());// 字符串所有字符切成字符型不定长数组 string ans[101]; // 存放所有单词 int num_ans = 0; for (int i = arr1.size() - 1; i >= 0; i--) { // 反转所有单词,存到ans中 // *** 这里把arr1.size() - 1 改成 arr1.size() - 2 就可以了 if (arr1[i] != ' ') ans[num_ans] = ans[num_ans] + arr1[i]; else { num_ans++; } } for (int i = num_ans; i >= 0; i--) { // 逆置输出ans cout << ans[i] << endl; } return 0; } 其实,正常的Windows 系统中 \r\n 被默认为换行,在洛谷的Linux 测评机中, \n 被默认为换行,这就导致测评机使得 \r 被吃进一次性读取的带有空格的字符串中。所以最后报错会有 字符13,我查了阿斯克码表,排行第13的正是\r。而且一定是在getline得到的最后一个字符。考虑干掉他就行。然后去看了大佬的解法。#include<bits/stdc++.h> using namespace std; string s; int main(){ while(cin>>s){ reverse(s.begin(),s.end()); cout<<s<<endl; } return 0; }十分的精巧,cin读到信息了才进入循环,否则退出,完美解决空格和回车的问题,空格时结束,但可以进入下一次循环,如果是回车,下一次循环也不满足,也就进不来。
2024年08月24日
173 阅读
22 评论
0 点赞
2024-04-23
在本地进行gpu训练的一些准备(不废话)
!!一定要注意!提前安装好vs!!!虽然这个过程我曾经也有简略的记录过,不过已经过去好久了,就当练个手吧以我的电脑为例,从任务管理器可以看出,我的电脑有一片显卡是英伟达的3060laptop。那么我去查一下我这个型号的显卡支持的cuda版本和对应的cudnn版本。而且要注意我将要用的训练框架。一般来说,是我的显卡支持多个版本的cuda,但是不是所有的cuda都是支持某一特定的框架版本,所以要做到显卡(和显卡驱动)、cuda(和cudnn)与框架版本之间的支持关系。换框架有时候要连同cuda的版本一起换(在path里面换路径即可)省流:我这里查到是支持11x的cuda,然后我下的是11.4 CUDA Toolkit 11.4 Update 1 Downloads 对应的cudnn在这 cuDNN Downloads 找一个适合11x的,然后有一个技巧,如果直接点击去下载会要求登录,然后就比较饭可能会被墙,所以直接复制这个链接放到迅雷或者其他下载软件进行下载又快又能绕过登录:我复制的链接是这个(注意我的版本):https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.7/local_installers/11.x/cudnn-windows-x86_64-8.9.7.29_cuda11-archive.zip/ok然后对下载的cudainstaller运行(无所谓安装位置,他安装完就自己删掉了),一路默认omg,CUDA Visual Studio Integration报错,vs是依赖,必须提前装,我的系统重装过,环境变量清掉了,我是有vs的,在D盘,我得更新一下我的p环境变量才能找到(这里贴一个解决vs环境变量的方法: vs环境变量解决 好用但是无法解决CUDA Visual Studio Integration)网上查了一下,说是正常训练是没有问题的,cuda编译才用到vs,所以一定要提前保证安装好vs!anyway,我这验证过是安装没问题的
2024年04月23日
102 阅读
32 评论
0 点赞