PaperMC 服务器允许刷线机/无头活塞等配置
服务器目录/config/paper-global.yml 中修改以下配置: 无头活塞: 1 allow-headless-pistons: true 刷线机: 1 allow-tripwire-disarming-exploits: true
服务器目录/config/paper-global.yml 中修改以下配置: 无头活塞: 1 allow-headless-pistons: true 刷线机: 1 allow-tripwire-disarming-exploits: true
2577 天前,我上传了我的第一个转载视频(BV1Zx411h7ue),它来自 YouTube。 到今天为止,我陆陆续续搬运了共 21 个 YouTube 视频,虽然中间中断过长达 694 天,但近两年我又开始偶尔搬运几个了。 想写这样一篇文章也有一阵子了,还是就发在 bilibili 上吧。也许会同时发在我的个人博客(ayx moefox tech)上。 专栏仅支持编辑三次,我会很谨慎地使用这三次机会。这是第一次。 下面包含很多我的个人观点,欢迎各位提出建议和意见。 不同意我的看法也请不要进行任何形式的人身攻击,否则我只能直接举报拉黑,谢谢。 不知道我为什么要说上面那句话。 我不清楚专栏是否允许包含外链(格式工具是仅支持站内链接),尤其是这些网站很明显都没有也不会备案,因此我会在评论区置顶评论中把我经常用来下载视频文件本身、封面(strerr com)、软字幕(downsub com)文件的网站以及工具的地址放出来。 关于取得原作者的授权 很惭愧,这件最重要的事情我做的相当不足。唯一成功取得授权的一次是这次。 一些原作者很神秘,没有在主页和视频简介中留下任何联系方式,在社交媒体上也搜索不到他们的名字。 可以用来联系原作者的途径包括但不限于 Email(电子邮件)、Twitter Direct Message(蓝鸟私信)、Ins DM(绿洲的copy对象)、Discord/不和谐(国内有类似的Oopz、KOOK)、TG(电报)。你也可以在原视频下发评论看看作者会不会回复。 有些频道体量太大了,我都觉得我不值得浪费原作者的时间。 我也不觉得把我的授权请求发到别人的商务合作邮箱里是个合适的做法。 我就不应该在未经授权的情况下搬运这些频道的视频的,虽然别人也这么做,但那不是我这么做的理由。这也是我写这篇文章前犹豫的原因,因为我自己也许就算不上一个“合格的搬运工”。 当然,在简介中写明禁止搬运的视频我是绝对不会搬运的。其实这种视频也很少见。 关于视频本身 我的原则是,只搬运自己喜欢的。如果我自己都没看完这个视频,搬运它干嘛呢? 我从来都是直接下载高画质的视频文件再上传到b站,而不是使用屏幕录制软件录制。这样不仅节约时间(使用录制的方法搬运一个十分钟的视频很明显就需要录制十分钟),而且能尽量将视频按原样不降低画质地提供(虽然一开始我只会使用一些提供粘贴视频链接并下载的网站来获取视频,画质会被限制在 720p,因为 YouTube 对于 1080p 及以上的画质似乎是把画面和音频分离存储的,你需要下载后手动使用 FFmpeg 或借助基于 FFmpeg 的脚本/程序合并出有声音的视频),我认为这也是对原作者的一种尊重。 至于b站的投稿工具,我使用得比较少,YouTube 本身就会压缩视频的码率,b站似乎不太会进行二次压缩。更何况这个工具仅支持手机验证码登录,对我这个懒人来说每次都要登录太麻烦了。不过,要上传多P视频似乎只能通过这个工具了,不知道现在是否还支持使用多P功能,b站似乎想把这个功能升级成合集还是什么其它东西。确实,一个多P视频只能点赞投币收藏三连一次,对一些做游戏攻略(尤指方舟作业)的UP主似乎有些不公平。 最后,我从来没想过我搬运的视频会浪费b站的服务器硬盘空间。这不是我该考虑的问题。 关于封面图 一开始我会任由b站自动从视频中截取,但近两年我都会获取原视频的最高分辨率的封面图并上传。 下载下来的封面图上传到b站总会需要截掉左右两边的一部分,因此有几次我使用了 MSPaint(画图)重新调整尺寸,也就是把封面图压扁,但我最近看着被压扁的封面图觉得这不是什么好做法,也就没再这么做了。 选择视频类型和填写原视频链接 原创和转载这个选项被选择并投稿后就无法修改了。如果你想把转载的视频标为原创,除非你与原作者取得了联系、达成了共识并商议好了收益问题(如果你的账号能获得创作激励),否则,请不要再读这篇和我的其他任何文章了,我和我的文字都不想看到你,你是最令我所不齿的那类人之一,get the f*** out. YouTube 似乎不会对分享的链接加入任何追踪参数,点击分享按钮后复制链接即可,这个链接比你从地址栏里复制的更短,最后一个斜杠后面的随机字母数字组合即是视频 ID。 当然,如果你不喜欢使用 .be 后缀的域名也可以从地址栏中复制 .com 后缀的,但我建议去掉后面乱七八糟的没用参数(如果有,比如&t=1s这种定位到某个时间的)。 我认为填写原视频链接也是对原作者的一种尊重,同时这也能方便其他人(观众/搬运工)用原视频的视频ID找到你搬运的这份副本。 关于标题 一开始我似乎直接沿用原视频的标题(当然现在对以前搬运的稿件也进行了修改),后来会进行笨拙的翻译,如果长度限制宽裕的话会把原来的标题也塞到后面方便来找带字幕版本的b站用户和其他想检查这个视频是否已经被搬运过的搬运工搜索。 关于标签 很明显,在b站上的视频必须有至少一个标签。 选好分区后我大概率会把分区和原作者的ID/频道名加进标签里,一开始可能参考了其他UP主搬运的同一作者的视频,最近还会参考 SocialBlade 对于原视频提供的 tags。 我这个人比较强迫症,因此会尽量凑满十个标签。 关于简介 最近的稿件里我会建议网络环境符合条件的观众在喜欢这个视频的情况下给原作者点个赞,并考虑订阅原作者的频道,同时放上原作者的主页地址。 我也会在限制字数够用的时候放上原视频的简介,有时候这部分也会简单翻译一下。 你不需要在简介里放原视频的链接,在选择转载后出现的那个单独的文本框里填写就行了。它会出现在简介的上方。 关于字幕 我从来都只使用CC字幕(其实也就这两年开始对一些短视频提供字幕),或者叫软字幕/隐藏式字幕,而不是把字幕压制进视频里,因为这会面临很多问题,比如想改一个错别字或一个单词就得重新渲染一遍整个视频,观众无法自主选择字幕的语言、大小和字体等样式,会挡住原视频的画面等等。主要原因还是因为我懒,根本不知道怎么把字幕压进视频里。CC字幕好处挺多的,为什么不用呢? 一些视频已经在 YouTube 上提供了中文的CC软字幕,这很好,我会直接把中文字幕扒下来(下载 .srt 文件,别下载成没有时间轴的 txt 了)在稿件过审后上传:因为b站不支持在投稿视频的同时提交软字幕。 但值得肯定的一点是,可以允许观众投稿字幕。观众投稿的字幕在展示前需要经过你的审核。如果你懒得翻译中文字幕,不妨等着观众来投稿,虽然大多数情况下你一份机翻字幕都不会收到。 不硬压字幕的另一个问题在这里就体现出来了:一些视频在b站上明明已经存在好几份良莠不齐(视频本身的画质和封面图的质量、标题简介标签和字幕的质量)的副本了,却不能允许我再撞一下这个车,但其他将字幕硬加到视频上的UP主却不受此限制(心理不平衡了有点)。我无力改变这样的现状,只能远离这些已经被搬运过的视频。 对于没有提供中文字幕的视频,如果有创作者自行上传的英文字幕我同样会原样提供,并翻译成中文(现在似乎还有一个视频的这项工作没完成);另外,一些自动生成的字幕质量其实也不错,只是在一些单词上需要手动调整大小写和拼写错误这些细节。 至于连自动生成的字幕都没有的视频,我精力有限,不会去做时间轴,太累了(虽然似乎可以打好字幕后使用一些AI驱动的工具来帮我对时间轴,但翻译需要对照英文原文,我还得把英文字幕打出来),更多情况下根本不会搬运。 除了中文和英语我目前不会第三种语言,因此其他语言的视频如果创作者没有提供中文字幕也拜拜了,因为我看都看不懂,这时候再搬运就违反了我“只搬运自己感兴趣的视频”的原则。更何这时候大多数b站用户可能都看不懂,我也不能提供字幕,这个搬运有什么意义呢? 如何防止撞车 很明显,我在上一节中已经提到了这种乱象:就算这个视频已经被搬运过了,只要你把字幕加到原来的画面上再投稿,也有可能过审而不会被判定为撞车。但我不推荐这么做。 在搬运之前,你可以用原视频链接的视频 ID,即等于号(=)后面那串和BV号相似的随机数字和字母的组合在b站搜索看看这里是不是已经存在过审的副本了,直接粘贴完整的链接搜索也可以,但建议去掉后面乱七八糟的追踪参数以提升准确性(我也说不准,反正我用的就是视频ID)。原视频的标题当然也要用于搜索,同时我也会试着用简明的中文翻译进行搜索,但是就算做到这一步还是会有撞车的情况出现,我觉得也无法避免了。 撞车判定也会出现误判,如果审核没有提供与你的稿件撞车的BV号,可以申诉要求提供。 搬运视频的吸粉与变现 我目前见过的变现方式除了最让我不齿的伪原创外,也就剩下修改原视频加入广告和在评论区置顶放广告了,因为创作激励计划很明显不会给转载视频任何收益。 我也是一个从搬运视频中小有获益的UP主,一个快10万播放的搬运视频(我认为能有这个播放量主要是因为标题能把人骗进来,我也不知道为什么大家都会被那个标题吸引)让我骗到了300个左右的粉丝(这其实让我感到有些“德不配位”)。当我穿插着投稿原创视频的时候,这些从搬运视频吸引来的粉丝理论上也会给我的原创视频带来一些流量(虽然我的这些粉丝似乎都不怎么活跃)。 我的思考 钱是个好东西。谁不喜欢钱呢? 但我不会去赚我认为本不应该属于我的钱。抹水印盗视频、利用信息差搞抄袭和伪原创,我都不会去碰,不管在什么平台上。 一些视频在b站上火了,在原来的平台上却反响平平。如果原作者能从b站的流量中获得收益,或许会是件不错的事情。但搬运者投稿前也不会知道它会获得多少播放,几百个还是几百万个。 后记 写着写着就三千多字了,在纸上写作写出这个字数是我不敢想象的。 其实写得挺乱的,或许之后会再修改润色一番。
Cloudflare Pages: https://e.imayx.top/ 似乎在网络条件合适的情况下访问体验比较好? GitHub Pages: https://g.imayx.top/ 有时候证书会抽风,自身支持 IPv6,因此关闭 Cloudflare Proxy 不影响纯 IPv6 用户访问 Vercel: https://imayx.top/ 综合考量下目前的主站,不支持 IPv6,但通过 Cloudflare Proxy 可支持 IPv6 访问 Netlify: https://n.imayx.top/ 感觉不是很稳定。。
原来直接从微软商店下载的方法已经失效了,我在这里分享一个离线安装包:来自设备制造商的 HEVC 视频扩展.zip - 蓝奏云 一般下载 x64 的直接打开安装就行了。 以下内容已失效 点击下面的链接即可调起 Microsoft Store 并打开「来自设备制造商的 HEVC 视频扩展」页面,直接点击安装即可。个人认为它的功能和收费 7 元人民币的「HEVC 视频扩展」相同,甚至近似大小也一样(都是 7.0 MB)。 ms-windows-store://pdp/?ProductId=9N4WGH0Z6VHQ 如果点击上面的链接没有反应,或者你现在使用的设备没有安装 Microsoft Store,可以点击下面的链接打开网页版 Microsoft Store;但是,这也不能让你把这个应用添加到你的微软账号的库中。 https://www.microsoft.com/zh-cn/p/hevc-video-extensions-from-device-manufacturer/9n4wgh0z6vhq 这篇文章在知乎上的链接:https://zhuanlan.zhihu.com/p/492933007
Test This Page is written in Vim!
如题,本站域名已更换为 imayx.top。 ablo.ga 已确定无法续期,因此使用 301 Moved Permanently 跳转至 imayx.top 终于不是一个二级域名了( 假如几年后你找到了这个页面的存档,也许你可以通过 https://ayx03.github.io/、https://jmpyx.github.io 或者 https://icp.gov.moe/?keyword=20213003 找到本站。 Edit log 2022-07-29 09:42:00 2023-05-03 13:10:00 2023-05-03 13:10:00
关于我 有事找我请首先考虑发邮件,但是你大概率也没什么事找我。 我的邮箱: from_hugo_blog@imayx.top 请注意:由于收信服务没有发邮件的功能,我会使用另一个邮箱回复。 我还在 bilibili @Ayx0 (uid13509072) (主账号 & 直播号) @ImAyx (uid155826488) GitHub @Ayx03 知乎 @ImAyx 更新记录 1 2 3 2020-12-26 21:45:00 2022-03-08 22:44:00 2023-03-01 16:24:00
你知道吗? 大屏访客点击右边的目录即可直接跳转到对应站点 个人博客 关于晚晚秋的一切—— 晚秋秋~ 一条鱼 的博客 洛谷@我和鱼过不去 她 AK 了 IOI ! 在 IOI 中获得满分,俗称 AKIOI Rosyr 的博客园 Rosyr 用来记录学习轨迹的地方 Avatar | 洛谷@syr050301 | bilibili@-Rosyr- TA AFO 了。 组织/项目 萌狸科技 本站隶属于萌狸科技。 淀粉月刊 接力曾经的《少年电脑世界》!简介/我们的故事 中文独立博客 如果你想找到更多像本站一样拥有自己的域名且相对自由的博客站点的话… 萌国ICP备案 本站仅在此处进行过ICP备案,备案号为20213003。 提问的智慧 简体中文版 很有幸参与了一些贡献,虽然第一次发 Pull Request 没意识到 patch-1 分支里的后续 commit 也会被同步到 pr 里被骂了… A Dark Room 小黑屋,一款被移植到网页上的文字游戏,挺有趣的。 支持以一串 Base64 编码后的 json 进行存档导入/导出。 如果 Vercel 在你所在的地区或使用的线路访问缓慢,试试 GitHub Pages: https://g.imayx.top/ADarkRoom/ mergemp4 利用 FFmpeg 在现代浏览器中合并 .mp4 格式的视频和音频,原作者为 maple3142。 目前似乎不可用。肯定不是被我搞坏的! GitHub 存储库 申请交换友链 为了减少本站(现在不太可能会,但仍有可能)更换域名带来的不便,本站的链接请使用 https://ayx03.github.io/ 而不是 https://imayx.top/ 发在评论区与邮箱(aynxul03@gmail.com)的申请(格式不限)我都会在看到后尽快回复。 本站域名更换记录 aynxu.l03.me 已于2021年12月19日过期。本站域名已更换为 ayx.moefox.tech。 ayx.moefox.tech 已于 2022 年 7 月 25 日过期。本站域名已更换为 imayx.top。 后记 右边的目录似乎出现了一些问题… 已解决(临时降级到 hugo-theme-stack v3.7.0) 已彻底解决(Stack 主题修复了这一问题(#459) 其实又出了一些问题,但是我假装没看见,然后现在解决了(#631 更新记录 1 2 2021-07-23 ??:??:?? 2022-02-12 23:48:00
前言 如果您的手机正处在无限重启(Bootloop)的状态,请看这一节(点击跳转)来了解解决方案。 如果您使用的是其他型号或版本的手机(甚至可以不是 LG 的手机),本教程也可能部分(但不太可能完全)适用于您。 本教程旨在整合其他资源和教程以节省韩版 LGU+ 的 LG V50 ThinQ 用户的时间,因此如果您的机器版本或型号不同,它可能浪费您的时间,甚至对您的设备造成不可挽回的损坏。 无论如何,请谨慎操作,尤其是在 Download 和 9008 模式下进行操作时一定要三思而后行,选用可靠的数据线,保持耐心,因为它们造成的损坏很可能无法通过简单地在软件层面进行操作来恢复。 拆箱收货 笔者建议您签收贵重物品前先与快递员当面验货,或在快递柜旁拆开,以避免不必要的纠纷。 不过,笔者自己从来不这么做。 如果卖家声称您购买的机器有以下特性,您可以用下文所述的方法验证他们的描述是否属实。 气密性 (该部分适用于其他出厂时支持 IP68 防水且有气压传感器的设备) 普遍的检测方法是使用 DevCheck 显示气压传感器的数值(其实系统自检中也可以查看压力传感器的数值,但是我更喜欢使用 DevCehck) DevCheck 的包名:flar2.devcheck 蓝奏云下载:https://cpk.lanzoui.com/iZdritwxo8b 打开传感器中的压力传感器 堵住右下角扬声器左侧的小孔(对于 LG G8 ThinQ,这个小孔在左上角;别问我为什么知道,因为我也用过) 用力按压屏幕后松开(小心别把屏幕压碎了,适可而止;别问我为什么要提一嘴,因为我压碎过)。 如果气压值的波动大于 10 hPa,那么这台手机很可能有气密性,可以下水。 气密性好的组装机波动甚至能达到 40 hPa,因此是否有气密性不应作为判断手机是否原装的标准。 但是请注意,不要将手机置于热水或蒸汽中。防水功能防水溅不防手贱,不建议经常性主动下水,也不要跟我一样想出水下跑分或者半浸没充电这种操作。 完美屏 一般指显示和触摸功能完美(没有彩点、黑块或绿线黑线),全原装非后压屏的机器外屏没有任何划痕的应该很少。 获取 IMEI 并记录,查询手机版本 得到 IMEI 的几种方法: 正常进入系统时,打开拨号键盘输入 *#06#; 正常开机进系统后在 设置-关于手机 中查看; 关机后长按开机键、音量上下键,同时按住。 查看手机背面的标签、包装盒上的标签(二手机可能没有); 记录好 IMEI 后可以在这里使用它查询来获得关于这台手机很多有用的信息,包括但不限于运营商(简称)、国家、区域、CPU 类型、手机型号、颜色、S/N 码、CSN 码、生产与出厂日期,但 KDZ 相关的四项信息似乎总是空白或没有。 查询手机的型号和版本就是为了下载对应版本的 KDZ(类似于其他安卓手机的线刷包,不懂也不用慌),避免浪费时间。 http://www.lgbbs.com/lg_mobile-lg_mobile.html (这个地址似乎暂时无法访问了) 升级 Magisk 版本 此部分适用于收到时卖家已帮您刷好旧版 Magisk 的机器。 旧版 Magisk 除了用于授予应用 Root 权限外能刷入的模块非常有限,因此我们需要升级 Magisk 版本。 推荐先升级 Magisk Manager(新版去掉了 Manager 的后缀),再升级 Magisk 本体。 但是,先别急着使用直接安装升级 Magisk,这很可能导致您的设备陷入 BootLoop(无限重启)的状态中(如果您甚至无聊到启用了安全启动),而且您还有可能完全不知道怎么让它停下来。 正确的做法应该是把新版 Magisk 的 .apk 文件扩展名改为 .zip,然后以安装模块的方式在 Manager 中刷入。 破解 VoLTE 我还没成功… 破解 5G 卖家已经帮你破解好了 VoLTE,移动卡电信卡都能边打电话边上网了(如果没有破解 VoLTE,电信卡无法正常使用),但你还听说这是一台 5G 手机? 其实,它似乎只支持联通与电信的 5G 频段。并且它只支持 NSA(非独立组网模式)而不支持 SA(独立组网模式)。 我没有开通 5G 套餐,也没有换新的 USIM 卡,可以用 5G 吗? 不存在只支持 4G 而不支持 5G 的 UIM 卡,并且未开通 5G 套餐也可以连接 5G 网络,只不过速度会被限制在 300 Mbps。开通 5G 套餐后可享受 500 Mbps 或 1 Gbps 甚至高达 4 Gbps 的速率。 能不能成功,一试便知。 下载 QPST TOOL 并安装,同意许可协议一路 Next 最后 Finish 即可。LG 驱动同理。 https://cpk.lanzoui.com/i0cvUtwz3qf https://cpk.lanzoui.com/i8Edvtwz7be 替换用文件,记得去掉 .txt 的后缀,笔者加上此后缀是因为蓝奏云不支持上传 .xml 格式的文件。 https://cpk.lanzoui.com/iDTmPtwza4f 电脑下载文件的同时,手机上也可以操作起来了。 打开拨号键盘,输入 *#546368#*500# 进入 HiddenMenu(隐藏菜单) SVC Menu - LDB - USB debugging 打钩 SVC Menu - Port Check Test 选择 Enabled 设置 - 系统 - 关于手机 - 软件信息 - 内部版本号 - 连续点击7次 - 您现在是开发人员! 设置 - 系统 - 开发人员选项 - 开启 - 启动 OEM解锁 - 启用 设置 - 系统 - 开发人员选项 - 开启 - USB调试 - 确定 USB 线连接 PC 下拉菜单更改 USB 选项 选择 仅充电 USB 调试授权 同意 设置 - 网络和互联网 - 绑定 - 开启 - USB绑定 如果你的桌面上有「LG 网络」这个 App,可以直接用它进入 Hidden Menu 和 Field Test 等隐藏菜单,无需繁琐地在拨号键盘中输入代码。 「绑定」实际上是网络共享的意思,官方系统的中文翻译很有问题。(甚至比机器翻译还烂) 好的,现在我们打开 QPST Configuration,点击右下角的 Add New Port 按钮。 如果你的手机已经以正确的姿势连接到了电脑,那么应该有一个端口后面显示 (LGE Mobile USB Serial Port)。选中它,OK。 然后在菜单栏的 Start Client 中选择第一项 EFS Explorer,选择刚刚添加的端口,OK。 成功连接并打开类似文件资源管理器的界面后,在左侧找到 policyman 文件夹,选中其中的所有文件(包括子目录 persisted_items),右键选择 Delete 或者按键盘上的 DEL 键删除。(建议备份一份,但这个 Explorer 似乎只支持每次传输一个文件到电脑) 然后把刚才下载的 carrier_policy.xml(记得去掉 .txt 后缀)拖进去(或者右键空白处选择 Copy Data File from PC) 重启手机,大功告成。 如果重启完移动数据的图标还是 4G 或者 LTE 也不用灰心,在拨号键盘中输入 5457#*510# 进入 Service Menu,选择第一项 Debug Screen,如果 NR5G Link 冒号后面的数字为 1,那么恭喜你破解成功了,只是你所在的区域暂时没有 NSA 5G 覆盖或者已经退网了。 如果破解 5G 后在拨号键盘输入 5457#*510# 没有反应,在 *#*#4636#*#* 中查看也是可以的。 以上内容修改自:LG V50S 开5G教程 LG V50适用-855板块-LG社区 使用 LG UP 来更换系统版本 安装并破解好 LG UP,同时下载好对应版本的 .kdz 线刷包文件。 将手机关机后在插入数据线的同时按住音量加来进入 Download 模式,数据线另一头需要事先连接到电脑。 线刷时请选择可靠的数据线,过程中一定要耐心等待,千万不要在进度条跑完手机端自动重启前断开数据线。 打开 LG UP 并拖入 KDZ 即可开始刷机。 保持默认模式(第一个),不会造成 BootLoader 被自动回锁。 一般两三分钟即可完成,完成后手机会自动重启。 韩版的 KDZ 中一般包含很多无用的 App,能卸载的开机后建议尽快卸载,嫌麻烦也可以刷完先硬格一次以清除所有预装应用,具体方法在下方。 (该章节尚未完成) 意外与失败的处理 对于 Bootloop(无限重启),首先尝试硬格。 同时按住电源键和音量下键 8 秒左右,当第一屏(即显示手机型号的画面)亮起时松开,3 秒后再次按住电源键,即可进入硬格菜单。 用音量减切换到 Yes,用电源键确认,Erase(擦除)很快。数据飞灰烟灭。 此操作在刷入 TWRP 后不会擦除手机,而是会进入 Recovery,且通过此方式进入一般触屏功能可以使用。 LG UP 线刷救砖 只要你还能进入 Download 模式,就能使用 LG UP 刷入官方 KDZ 来进行线刷救砖,无需冒险使用 9008 进行救砖。 详见「使用 LG UP 来更换系统版本」一节。 鸣谢 对本文启发很大的 LG 855系列-快速黑砖手册 愿你刷机半生,归来仍是黑砖
请善用右侧的目录(如果有)来跳转到你需要学习的部分。 安装 Python 3 本体与集成开发环境 如果你已经完成了这些准备工作,可以使用右侧的目录跳到下一章节 - 你好,世界。 Python 3 本体(包括 IDLE) 前往 Python 官网下载。 https://www.python.org/downloads 打开该地址时网页会自动识别你的操作系统并为你推荐合适的 Python 3 版本,一般情况下点击黄色按钮下载即可。目前的最新版本为 3.10.4。 Windows 用户 Windows 8/8.1/10/11(非 LTSC 版本)用户也可以在 Microsoft Store 免费获取 Python 3.10 或 Python 3.9。 LTSC 版本的 Windows 没有自带微软应用商店,但其实也可以自行安装。篇幅所限,感兴趣的自行 Google。 如果你还没有安装过任何版本的 Python 3,在命令提示符/PowerShell 中输入 python3 并回车可以直接唤起 Microsoft 商店并进入安装页面。 需要注意的是,如果你使用的是比 Windows 8.1 或 Windows Server 2012 更旧的操作系统,你将无法安装 Python 3.9.0 及更新的版本。你仍能安装 Python 3.8.10,但对 Python 3.8.x 的支持将于 2024 年 10 月终止。 安装时记得勾选 Add Python 3.x to PATH,这样就不需要手动配置环境变量了。 如果你没有正确地配置环境变量,你需要手动 cd 到 Python 的安装目录下才能使用 python 等命令。 Linux/UNIX 用户 Ubuntu 18.04/20.04 用户可以参考这篇教程:https://phoenixnap.com/kb/how-to-install-python-3-ubuntu 其他 Linux/UNIX 用户请继续阅读这一小节。 Linux,30 岁生日快乐! 这是你的生日蛋糕,你 ** 自己编译去吧。 大多数 Linux 发行版可能自带了 Python 2,由于一些程序仍需依赖它来运行,并不建议将其卸载。 可以使用 python --version 来检查已安装的 Python 版本。 为 Python 创建一个安装目录,然后在下面的页面下载源代码,并解压到刚刚创建的目录中。 https://www.python.org/downloads/source/ 使用 yum 命令安装编译 Python 时需要用到的依赖包。 1 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel 指定安装路径 1 ./configure --prefix=/root/python310 解压后使用 make 命令编译,编译完成后使用 make install 安装。 为 python3 和 pip3 建立软连接。 1 2 ln -s /root/python3102/bin/python3102 /usr/bin/python3 ln -s /root/python3102/bin/pip3 /usr/bin/pip3 macOS 用户 https://www.python.org/downloads/macos/ 分为 Intel-only 和 universal2 版本,部分 Release 仅提供后者。 Apple Silicon(M1 系列 arm 架构芯片)用户请选择后者。 iOS、iPadOS 和其他操作系统用户 https://www.python.org/download/other/ 安装好后,在命令提示符(Command Prompt)/PowerShell(macOS/Linux 是 Terminal) 中输入 python -V 来查看版本信息。 打开运行(按下键盘上的 Win+R),输入 python 即可进入 IDLE 的命令行版本 在 Windows 的开始菜单里你也可以找到有图形界面的 IDLE。 PyCharm 支持 Windows、macOS(Intel/Apple Silicon)、Linux。 前往 JetBrains 官网下载安装包。 https://www.jetbrains.com/zh-cn/pycharm/download 如果你没有教育邮箱可用于申请免费的 Professional Edition,推荐下载免费且开源的 Community Edition。 Ubuntu ≥ 16.04 用户 也可以使用 snap 安装 PyCharm: sudo snap install [pycharm-professional|pycharm-community] --classic 你也可以选择安装 Spyder 等其他 IDE,或者干脆使用一个文本编辑器(如 vim、Sublime Text、Notepad3 等)。 本文所使用的环境 这篇笔记将使用 PyCharm Community Edition 2021.3.2 和 Python 3.10.2。 使用更新版本的 PyCharm 或其他 IDE/编辑器通常不会产生问题。 你好,世界。 打开 PyCharm,新建一个项目。 暂时不需要特别配置解释器,保持默认即可; 如果你想保持些神秘感,记得取消勾选 Create a main.py welcome script; 或许在只有一个文件的情况下使用 IDLE 是更好的选择,等待 IDE 自动配置环境。 在左侧的资源管理器中右键你刚创建的项目,选择 New > Python File,为你的第一个 Python 程序起一个你喜欢的名字。不过,它不能以数字开头。 print 语句 双击刚刚创建的文件,在右侧打开的文本编辑区域输入 print("Hello World!")。 编写大多数编程语言的代码时,都要记得切换到美式键盘或英式键盘而不是使用中文输入法(如果你没有,在语言和键盘选项中添加一个),以免错误地输入全角的逗号,、句号。、引号“”、中括号【】以及小括号()。 像其他大多数 IDE 一样,PyCharm 会替你自动补全括号和双引号,你只需要打左半边就好。 按下 Alt+Shift+F10(或在 Run 菜单下选择 Run...),选择你的文件。 下方弹出的窗口中输出了 Hello World!。 程序结束时的返回值 Process finished with exit code 0 表示程序正常结束; 相反地,Process finished with exit code 1 则表示程序异常退出。 在这点上 Python 与 C/C++ 惊人地相似。 变量 现在你已经会用 Python 打印文字了! 但为了利用 Python 处理数据,我们总得把数据先存在什么地方而不是写死(hardcode)在代码里吧? 在 Python 3 中,第一次使用一个变量名时为其赋予的值决定了它之后能存储的数据类型。 你不需要像 C++ 那样为变量指定一个类型,也不会出现像 C++ 的主函数中定义的变量一样的奇怪数据。 string 类型 几乎可以存储你想存的任何数据。 你可以用一对单引号 '' 或一对双引号 "" 来把字符串括起来,以区别于需要 Python 解释器处理的代码。 为变量赋值时,把变量名写在左边,用等号与右边的值连接。 不明白?看看例程吧。 示例程序1: 1 2 username = 'Aynxul03' print("Hello " + username + "!") 运行,输出为 Hello Aynxul03! 示例程序2: 1 2 3 4 5 username = 'Aynxul03' password = '123456' print("Hello " + username + "! Your password is " + password) password = '654321' print("Hello " + username + "! Your password is " + password) 运行,输出为 Hello Aynxul03! Your password is 123456 Hello Aynxul03! Your password is 654321 未完,待续 Changelog 2022-03-08 22:38:00 新增变量[string 类型]、小标题#本文所使用的环境、程序结束时的返回值,为 Windows 外的操作系统提供 Python 本体的安装教程,修改了一些格式与排版,改善阅读体验。
今天终于找到自己的 Hugo 站点文件了… 没别的,就感觉快过年了该发篇博文。 这次我在慎重考虑后对博客进行了一些大刀阔斧的改版: 移除了博客中的所有「分类」,各位仍可使用首页右侧的「标签云」或「标签」页面。 将个人博客的友情链接和各种组织和项目的链接页面合并为一个页面。 更新到 hugo 及 hugo-theme-stack 的最新版本。 在页脚添加了关于使用 Google Analytics 收集用户数据的声明 把本站的锅全甩给了 GitHub Pages 和 Cloudflare。 不过,今天还是没把评论回复的邮件通知配置好… 因为我忘了怎么整了,还得再仔细看文档…
你以前也许听说过或用过 Valine。Waline 与它差不多,但管理功能集成在内,并可以更方便地部署。 如果你使用其他没有 Waline 支持的 Hugo 主题或其他博客系统,按本文部署后可以参考官方文档来引入客户端。 在 LeanCloud 上部署数据库 注册 LeanCloud 国际版并进入控制台。 如果您决定使用 LeanCloud 国内版,您需要为您创建的应用额外绑定已备案的域名。 创建开发版新应用(随意命名)并复制设置 - 应用凭证中的前三项值,稍后会添加在 Vercel 中的环境变量里。 在 Vercel 上部署服务端 (推荐)使用 GitHub 登录,创建存储库(可以是私有 Repo),跳过创建团队(反正这也不是什么需要团队协作的项目),部署。 两分钟左右部署就会完成。 完成部署后在 Settings 中找到 Environment Variables,分别添加三个环境变量 LEAN_ID、LEAN_KEY 和 LEAN_MASTER_KEY 。VALUE 分别填写在 LeanCloud 中获得的 APP ID、APP KEY、和 Master Key。 记得注册你的管理员账号,以免被访客注册。第一个注册的用户会得到管理权限。 在配置文件中配置客户端 最后打开站点根目录下的 config.yaml,在 params 下添加以下几行:(如果你当初拷贝了 Stack 提供的 config.yaml 文件,那么这段在第 60 行左右,只需填入 serverURL 即可) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # Waline client configuration see: https://waline.js.org/en/reference/client.html waline: serverURL: https://<PUT_YOUR_OWN_HERE>.vercel.app/ lang: zh-CN visitor: true avatar: emoji: - https://cdn.jsdelivr.net/gh/walinejs/emojis/qq requiredMeta: - name - email - url placeholder: locale: admin: Admin 记得替换 serverURL 为你自己部署的 Vercel App 地址,在这里查阅各项参数的含义。 快速上手 | Waline 然后可以使用 hugo server 看下效果,使用 Waline 时不会像 disqus 一样在本地预览时屏蔽评论。 Emoji 你可以为你的 Waline 客户端添加多套表情。 题外话,严格来说,这些表情似乎不能称作 emoji。真正的 emoji 必须能被编码,而不是一张图片。 Waline 提供了一系列开箱即用的表情预设。你可以直接将它们添加到 emoji 选项中: Alus https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/alus 哔哩哔哩 https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/bilibili QQ https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/qq 贴吧 https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/tieba Twitter Emoji https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/tw-emoji 微博 https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/weibo 本站的配置 例如本站目前的 Waline 部分配置如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # Waline client configuration see: https://waline.js.org/en/reference/client.html waline: serverURL: https://c.imayx.top/ lang: zh-CN visitor: false avatar: emoji: - https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/tieba - https://cdn.jsdelivr.net/gh/walinejs/emojis/qq - https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/alus requiredMeta: - name - email - url placeholder: locale: admin: 博主 B站和微博的表情看多了会让我生理性不适,因此没有添加进本站的客户端中。 评论管理 评论管理 (管理端) 部署完成后,请访问 <serverURL>/ui/register 进行注册。首个注册的人会被设定成管理员。 管理员登陆后,即可看到评论管理界面。在这里可以修改、标记或删除评论。 用户也通过评论框注册账号,登陆后会跳转到自己的档案页。 编辑记录 1 2021-10-19 23:21:00
这个错误让人懵圈的地方就在于它不会给出错误出现的位置,让已经写了几百行的你痛不欲生。 可执行文件被占用了 因此编译器无法覆盖旧的可执行文件,所以编译失败。 这很有可能是你没发现它还没结束运行。 (我目前在用的 IDE:Visual Studio Code) 扩展:C/C++ Compile Run(可以方便地编译单个 cpp 文件,且不会因为路径中存在空格或中文出错。) 解决方案 Dev C++ 等 IDE 直接把弹出的窗口(黑框)关了就行了 VS Code 可以从输出切换到终端选项卡,使用快捷键 Ctrl+C 结束程序(同样适用于 external console )。 实在不行就用任务管理器和 taskkill 吧 主函数不存在(main 拼写错误) 你不太可能不写主函数,但是你很有可能把 main 打成 mian 或者什么其他奇怪的东西。 在编译器眼里,这些可不能算主函数。 解决方案 把 main 拼对。 所调用的函数仅进行了声明 这种情况下新版编译器仍旧会输出 error: ld returned 1 exit status 这一让人迷惑的错误。 但是一般也不会把函数体和声明分开写吧… (函数声明在主函数上方即可,函数体是可以写在 main 函数下方的。) 解决方案 把漏写了的函数体补上。 (旧版编译器)在主函数中定义了函数 新版编译器发现你在 main 函数中定义了其它函数报错并不是error: ld returned 1 exit status, 而是error: a function-definition is not allowed here before '{' token 解决方案 把子函数定义在主函数外面。 (旧版编译器)调用了不存在的函数 一般情况下应该是所需头文件未引入或者函数名键入错误。 并不确定“scanf/printf 键入错误”是不是真的会引起该错误(CSDN 上的一篇博客说的,我也懒得去装个旧版编译器实测),是不是只有 scanf 和 printf 会这样更不得而知… 总之新版编译器即使在 CSDN 博文中所谓的“代码较多的情况”下也不会因为这个原因出现这种错误,只会告诉你这个函数在这个作用域没有被定义过,甚至还会反问你: 你说的是 scanf 吗? (测试用代码是随机跳题后从这里复制的,并未提交评测) 解决方案 检查函数名称的拼写是否正确。 如果想调用库函数但不清楚应该引入什么头文件,可以在搜索引擎上像这样搜索: sqrt() 所在的头文件 C++ sqrt() C语言 sqrt() 或者直接 #include <bits/stdc++.h> 本文的测试环境 1 2 3 4 g++ (MinGW-W64 x86_64-posix-seh, built by Brecht Sanders) 10.3.0 Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 编辑记录 2021-08-22 19:20:00
又摸了一下午整了个这么个东西出来 要得到 A+ 评级: 您的网站必须启用 HSTS 且 max-age 属性不小于 6 个月(即 15768000 秒) 请注意: 启用 HSTS 后所有不支持 HTTPS 的子域名都将无法访问,且在 max-age 属性设置的时间内无法恢复。 要得到 ATS 合规: 您的网站必须支持 TLS v1.2。 要得到 PCI DSS 合规: 您的网站不得支持 TLS v1.0。 关闭 TLS v1.0 支持意味着放弃对一些老旧操作系统和浏览器(Android ≤ 4.3、Internet Explorer ≤ 10、Java ≤ 7u25、Safari ≤5.1.9、OS X ≤ 10.6.8)的兼容性,具体测试情况见下图。 PCI安全标准委员会规定 2018 年 6 月 30 日之后,开启 TLS1.0 将导致 PCI DSS 不合规, 具体参考:《更严格的PCI DSS合规标准》 HSTS 相关配置可以参考 MySSL.com 的 HTTPS安全与兼容性配置指南 测试工具:HTTP Strict Transport Security Header Testing Tool
题面来自洛谷,根据我的个人喜好有小修改 题目背景 根据斯诺登事件出的一道水题 题目描述 2013 年 X 月 X 日,俄罗斯办理了斯诺登的护照,于是他混迹于一架开往委内瑞拉的飞机。但是,这件事情太不周密了,因为 FBI 的间谍早已获悉他的具体位置——但这不是最重要的——最重要的是如果要去委内瑞拉,那么就要经过古巴,而经过古巴的路在美国的掌控之中。 丧心病狂的奥巴马迫降斯诺登的飞机,搜查时却发现,斯诺登杳无踪迹。但是,在据说是斯诺登的座位上,发现了一张纸条。纸条由纯英文构成:Obama is a two five zero.(以 . 结束输出,只有 6 个单词+一个句号,句子开头如没有大写亦为合法)这句话虽然有点无厘头,但是警官陈珺骛发现这是一条极其重要的线索。他在斯诺登截获的一台笔记本中找到了一个 C++ 程序,输入这条句子后立马给出了相对应的密码。陈珺鹜高兴得晕了过去,身为警官的你把字条和程序带上了飞机,准备飞往曼哈顿国际机场,但是在飞机上检查的时候发现——程序被粉碎了!飞机抵达华盛顿只剩5分钟,你必须在这 5 分钟内编写(杜撰)一个程序,免受上司的 10000000000%10 大板。破译密码的步骤如下: (1)找出句子中所有用英文表示的数字($\leq 20$),列举在下: 正规:one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen twenty 非正规:a both another first second third。为避免造成歧义,another 算作 $1$ 处理。 (2)将这些数字平方后对 $100$ 取模,如 $00,05,11,19,86,99$。 (3)把这些两位数按数位排成一行,组成一个新数,如果开头为 $0$,就去 $0$。 (4)找出所有排列方法中最小的一个数,即为密码。 // 数据已经修正 By absi2011 如果还有问题请联系我 输入格式 一个含有 6 个单词的句子。 输出格式 一个整型变量(密码)。如果没有符合要求的数字出现,则输出 0。 输入输出样例 输入 #1 1 Black Obama is two five zero . 输出 #1 1 425 分析 数据咋骂人呢 先一个个输入单词与题目给出的 26 个单词匹配,string 类型可以直接使用逻辑运算符 == 进行判断(C++ 选手谁闲着没事用 char 数组啊); 由于已经知道单词数量是 $6$ 个并不需要用到 while 循环(输入字符串的情况下 cin 的返回值情况我也不清楚) 一些问题 为什么样例输出不是 245 或者 254 ? 25和4组成的最小数不是254吗,为什么样例给的425? Black Obama is two five zero . zero 是不算数的! 因此我们从六个单词中只能提取出两个:two 和 five。 转换成数字就是 $2$ 和 $5$。 然后我们算出它们的平方。 $2^2=4$ $5^5=25$ 对 $100$ 取模后结果是 $04$ 和 $25$,因为题目说 把这些 两位数 按数位排成一行 并且给出了 00,05 这两个例子 有两种排列方法,因为 $0425$ 开头为 $0$,去掉开头的 $0$ 之后就是 $425$,比另一个排列 $2504$ 小 所以这个所有排列方法中最小的一个数是 $425$,而不是 $2504$。 把这些两位数按数位排成一行,组成一个新数 我感觉中间那三个字是多余的…不仅不能帮助理解反而可能误导选手 只能得 20 分? 放一下我下载的测试点#2 的数据(请勿用于打表): 1 You are a three eight pig . 1 10964 我得了 20 分的程序在这个测试点上给出的答案是 1964,也就是忽略了所有 0,但实际上只能忽略开头那个。 如果开头为 0,就去 0。 记得排序。 1 2 3 4 5 if(num[0]) cout<<num[0]; for(int i=1;i<cnt;i++){ if(num[i]>10) cout<<num[i]; else cout<<'0'<<num[i]; } 忘了没有任何单词匹配的情况 可能就我没看清题? 直接输出 0 后结束程序即可。 其实不结束也啥都输出不出来,浪费点时间而已。 1 if(!cnt) cout<<0,exit(0); 冷知识,虽然 return 0; 不能写在逗号后面用于结束程序(无法通过编译),但是 exit(0); 可以 完整代码 仅供学习参考使用 抄袭、复制题解,以达到刷 AC 率/AC 数量或其他目的的行为,在洛谷是严格禁止的。 洛谷非常重视学术诚信。此类行为将会导致您成为作弊者。 具体细则请查看洛谷社区规则。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 #include<bits/stdc++.h> using namespace std; string tmp,dic[27]={"","one","two","three","four","five",//并不会出现zero "six","seven","eight","nine","ten",//但是这里我为了前20个数下标对应数值把0空着 "eleven","twelve","thirteen","fourteen","fifteen", "sixteen","seventeen","eighteen","nineteen","twenty", "a","both","another","first","second","third"}; int num[6],cnt; int main(){ for(int i=0;i<6;i++){ cin>>tmp; if(!i&&tmp[0]>='A'&&tmp[0]<='Z') tmp[0]+='a'-'A'; for(int j=1;j<=26;j++){ if(tmp==dic[j]){ if(j<=20){ //在下标1-20匹配即对应1-20 num[cnt++]=j; break; } else { switch(j){ case 21: case 23: case 24: //21、23、24对应1 num[cnt++]=1;break; case 22: case 25: //22、25对应2 num[cnt++]=2;break; case 26: //26对应3 num[cnt++]=3;break; } break;//switch 语句内的 break 仅能跳出 switch 而对外面的循环没有影响, //因此必须在跳出 switch 后再 break 一次以确保跳出循环(其实继续遍历应该 //也没事,不会成功匹配只是浪费点时间) } } } } if(!cnt) cout<<0,exit(0);//冷知识,虽然 return 0 不能写在逗号后面用于结束程序但是 // exit(0) 可以 for(int i=0;i<cnt;i++){ num[i]=num[i]*num[i]; num[i]%=100; } sort(num,num+cnt); if(num[0]) cout<<num[0]; for(int i=1;i<cnt;i++){ if(num[i]>10){ cout<<num[i]; } else { cout<<'0'<<num[i]; } } } 编辑记录 修复了最后一个解释不通的地方 2023-10-28 11:37:00 修复数学公式渲染 2021-08-06 18:39:00 暂时移除的段落: 我得了 20 分(过了测试点#1)之后重读题面的理解是把数字的每一位拆分排序,而这个帖子的楼主的想法则是 25 和 4 的两种组合 425 和 254 中 254 更小。
啥?装了 Stack 拷了 exampleSites 以后不能正常 hugo -D了? 试试以下两项操作。 删除根目录下的 config.toml Issus #105 @ CaiJimmy/hugo-theme-stack 生成 examplesite/content/post/rich-content/index.md 时报错 是因为是示例文章有请求 Twitter API 的 Shortcode ,需要 珂学上网 。 我的解决方式是直接把 YouTube 、 Twitter 和 Vimeo 的 ShortCode 都删了,反正以后也用不到(当然你也可以直接把这篇 rich-content 给整个删了) Issus #191 @ CaiJimmy/hugo-theme-stack 另外,Bilibili 的 ShortCode 格式如下: (去掉两个反斜杠) \{\{< bilibili BV1Zx411h7ue >}} 别一天到晚建博客了,赶紧写吧。
我的博客的站内搜索已经搭载了这款 微内核万物互联分布式软总线形式化验证 搜索引擎,大家可以在侧边栏点击搜索抢先体验一下! 相信这将是与 花瓣搜索 一样的优秀国产项目!让我们在一起拒绝卡脖子!星星之火可以燎原!
你好,Hugo! Bilibili Short Code Test {{< bilibili BV1Zx411h7ue >}}
题目描述: 时间:1s 空间:32M 公司派你去和几位客户面谈,以了解他们对公司产品的意见。你逐个打电话与客户联系,得知他们一般都很忙,不过他们还是可以为你抽出一点时间。现在的问题是有些客户的时间有冲突,你无法在一天内联系所有客户。所以你需要一个程序来帮助你安排第一天的工作,使得你能尽可能地和更多的客户进行联系。注意,客户不愿意你打乱他们的计划。如果你和某个客户约定见面,必须按时到达并且充分利用这段时间和他交谈,这样才不至于让他产生不满。你可以假设从一个客户处到另一个客户处的时间短得忽略不计。 输入格式: 输入包括了多个测试数据,每个测试数据开头是一个整数 $n(1 \le n \le 10000)$,表示客户总数。接下来n行每行包括两个正整数 $s$、$t$,分别表示该客户的空闲时间段的起始时间和终止时间。$s<t$ 输出格式: 对于每个测试数据,在单独一行内输出你所能接触到的最多客户数。 样例输入: 1 2 3 4 3 1 15 2 19 15 17 样例输出: 2 约定: (无) 提示: (无) 代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 /* Name: 7、客户调查 Copyright: Aynxul03 Author: Aynxul03 Date: 2021-07-13 Description: 时间:1s 空间:32M 题目描述: 公司派你去和几位客户面谈,以了解他们对公司产品的意见。你逐个打电话与客户联系, 得知他们一般都很忙,不过他们还是可以为你抽出一点时间。现在的问题是有些客户的 时间有冲突,你无法在一天内联系所有客户。所以你需要一个程序来帮助你安排第一天 的工作,使得你能尽可能地和更多的客户进行联系。注意,客户不愿意你打乱他们的计 划。如果你和某个客户约定见面,必须按时到达并且充分利用这段时间和他交谈,这样 才不至于让他产生不满。你可以假设从一个客户处到另一个客户处的时间短得忽略不计。 输入格式: 输入包括了多个测试数据,每个测试数据开头是一个整数n(1<=n<=10000),表示客户总数。 接下来n行每行包括两个正整数s、t,分别表示该客户的空闲时间段的起始时间和终止时间。s<t 输出格式: 对于每个测试数据,在单独一行内输出你所能接触到的最多客户数。 */ #include<bits/stdc++.h> using namespace std; int n,lt,ans; struct sb{ int start,end; }client[1001]; bool cmp(sb a,sb b){return a.end<b.end;}//按结束时间升序 int main(){ ios::sync_with_stdio(0); cin>>n; for(int i=0;i<n;i++) cin>>client[i].start>>client[i].end; sort(client,client+n,cmp); //排序 for(int i=0;i<n;i++) if(client[i].start>=lt) ans++,lt=client[i].end; cout<<ans; return 0; }
(题面来自洛谷) 题目描述 yyy 的学校要求早上 8 点前到达。学校到 yyy 的家一共有 $s$($s\le 10000$) 米,而 yyy 可以以 $v$($v<10000$) 米每分钟的速度匀速走到学校。此外在上学路上它还要额外花 10 分钟时间进行垃圾分类。请问为了避免迟到 yyy 最晚什么时候出门?输出 HH:MM 的时间格式,不足两位时补零。由于路途遥远, yyy 可能不得不提前一天出发,不过不可能提前超过一天。 输入格式 两个正整数 s,v,意思已经在题目中给定。 输出格式 hh:mm 表示最晚离开家的时间(时:分,必须输出两位,不足两位前面补0) 输入输出样例 输入 #1 100 99 输出 #1 07:48 分析 小学的匀速直线运动问题,t=s/v 但是有几个小细节 不要忘了加上10分钟 怎么输出 HH:MM 的格式?试了一下像保留小数点一样使用 C 的标准输入输出(Xchkoo 口中所说的“那套老掉牙的 cstdio”)的占位符,居然啪一下就行了 怎么处理时分进位?60 进制,因为不知道进几次所以用 while 循环实现就行了 s/v 有小数点怎么办?不能四舍五入,只能向上取整,因为迟到 $0.000000000001$ 分钟也是迟到。 5.千米迢迢上学的 yyy 问题:八个小时都到不了学校怎么办?当 $h$ 自减变为 $-1$ 的时候将 $h$ 赋值为 $23$ 即可,由于不可能提前超过一天出发(某学生连续赶路 $30$ 余小时猝死)所以 if 即可 h 及 m 的计算问题:我的做法是赋初值 08:00 然后往回倒减分钟数,然后进位到小时位 代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include<bits/stdc++.h> using namespace std; int main() { int s,v; cin>>s>>v; int t=ceil(1.0*s/v); int h=8,m=-t-10; while(m<=0) { m+=60; h--; if(h<0) h=23; } printf("%.2d:%.2d",h,m); return 0; } 编辑记录 2021-08-06 18:11:00
(题面来自洛谷) 题目描述 国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续 $n$ 天每天收到 $n$ 枚金币后,骑士会在之后的连续 $n+1$ 天里,每天收到 $n+1$ 枚金币。 请计算在前 $k$ 天里,骑士一共获得了多少金币。 输入格式 一个正整数 $k$ ,表示发放金币的天数。 输出格式 一个正整数,即骑士收到的金币数。 输入输出样例 输入 #1 1 6 输出 #1 1 14 输入 #2 1 1000 输出 #2 1 29820 说明/提示 【输入输出样例 1 说明】 骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。因此一共收到 $1+2+2+3+3+3=14$ 枚金币。 对于 $100%$ 的数据,$1\le k\le 10^4$ 分析 代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include<bits/stdc++.h> using namespace std; int main() { int k, //发放金币的天数 coin = 0, //骑士收到的金币数 per = 1, //每天发给骑士的金币数 remain = 1; //按此数量发放的剩余天数 cin>>k; for(int i=1;i<=k;i++) { coin+=per; //发放金币 if(--remain==0) remain=++per; //之后的 per+1 天每天发放 per+1 枚金币 } cout<<coin; return 0; } 编辑记录 突然发现之前放的代码压根没法通过编译… 2023-10-28 11:49:00 2021-08-06 18:10:00
这题太有意思了,发个题解纪念一下 题面来自洛谷 $\LaTeX$ 渲染不了,哭了(明明后台预览是可以渲染的啊= (搬到 Hugo 博客可以正常显示了) 题目描述 给定 $n(n \le 10000)$ 和 $k(k \le 100)$,将从 $1$ 到 $n$ 之间的所有正整数可以分为两类:$A$ 类数可以被 $k$ 整除(也就是说是 $k$ 的倍数),而 $B$ 类数不能。请输出这两类数的平均数,精确到小数点后 $1$ 位,用空格隔开。 数据保证两类数的个数都不会是 $0$。 输入格式 无 输出格式 无 输入输出样例 输入 #1 1 100 16 输出 #1 1 56.0 50.1 分析 利用了等差数列等高阶数学知识来减少循环次数。 代码(C++) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include<bits/stdc++.h> using namespace std; int main(){ int n,k,can,cant,all,num=0; cin>>n>>k; all=(n+1)*n/2; for(int i=k;i<=n;i+=k){ can+=i; num++; } cant=all-can; double a = (double)can/num; double a_ = (double)cant/(n-num); printf("%.1lf %.1lf",a,a_); return 0; } 编辑记录 2021-08-13 12:01:00
如你所见,我的博客现在使用 Hugo,因此该修改版主题不太可能发布更新。 此主题并非我的原创作品,原作者为 Wider Gao 而且改得很烂,主页的文章展示都搞炸了(点击查看demo),不建议使用(但个人感觉也不是特别糟糕) 我的改动 我作出了如下改动: 把原作者使用的js源(bootcss.com)替换为 bootcdn.net,提升加载速度(至少在我所在的地区可以) 把原作者在博客主题更新了一文中提供的 my.css 替换为从他的页面上扒下来的css(因为这个只有几十行的 my.css 根本没法用=我也不知道为什么,从页面上直接扒也是该文评论区提供的方法) 下载链接 文件均发布在 Pastebin.com 以及 Ubuntu Pastebin 上 如需获取原版,请移步Wider Gao的博文 页面定制 CSS 代码 Pastebin.com 复制 下载 Ubuntu Pastebin 博客侧边栏公告 Pastebin.com 复制 下载 Ubuntu Pastebin 页首 HTML 代码 只有一行,就直接放这了 <link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> 页脚 HTML 代码 Pastebin.com 复制 下载 Ubuntu Pastebin 使用 先修改一下这些代码(把各种图片链接替换一下) 建议先粘贴到编辑器里操作(搬迁备注:现在博客园后台终于有能看的编辑器而不是光秃秃的HTML原汁原味文本框了,我青结) 背景图 替换 https://cdn.luogu.com.cn/upload/image_hosting/utntnuud.png 题外话:洛谷图床会屏蔽站外链接 :( 但是登陆了上传图片的洛谷账号就能加载 这就是为什么之前syr看不到我博客园的头图而我能看到 头像 替换 https://pic.cnblogs.com/avatar/2228888/20201128101240.png 在博客园后台打开设置,将博客皮肤改为 Custom ,并勾选 禁用模板默认CSS ,然后将这些代码粘贴到框里,保存。 实现正常显示需要申请两个(次)权限,一次HTML的,一次JS的。(申请HTML权限通过了才能申请JS权限) 声明 本主题并非本人制作,如果这侵犯了您的权利,请发邮件和我取得联系,我将第一时间作出回应。 修改记录 2021-08-06 17:37:00
我的解决方法 以 管理员身份 运行一个编辑器 打开 C:\Program Files\nodejs\node_modules\npm\npmrc 如果你安装Node.js时修改了安装路径那么就不是这个路径了 如果这个文件不存在就自己新建一个文本文档并去掉扩展名 .txt 修改 C:\Program Files\nodejs\node_modules\npm\.npmrc 没有用 填入以下内容并保存 1 2 3 proxy = null registry = https://registry.npm.taobao.org disturl = https://npm.taobao.org/dist 然后再重新尝试安装Hexo(npm install hexo-cli -g)即可。 如果依旧无法解决可以尝试在以管理员身份启动的命令提示符或 Powershell 中执行此命令 1 npm config set disturl https://npm.taobao.org/dist 文章迁移备注 从博客园搬文章的时候无意发现本文已被以下站点转载: qdmana.com yunjuu.com 我并未授权这些网站转载我的文章。 虽然这篇博客没有花我很多时间,但是这些网站的行为让我感到十分不满。 编辑记录 2021-08-05 13:20:00
题面链接 HDU 2063 Vjudge 题意概述 求一个二分图最大匹配的边数 题目标签 匈牙利算法模板题 参考代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #include <bits/stdc++.h> using namespace std; #define maxn 1000 + 10 int n, m, k, head[maxn], link[maxn], cnt, tot; bool vis[maxn]; struct Edge { int to, nxt; }edge[maxn]; void add(int u, int v) { edge[cnt].to = v; edge[cnt].nxt = head[u]; head[u] = cnt; cnt++; } bool dfs(int u) //深搜判断对于点集v2中的一个点u是否能与点集v1中的一个点v匹配 { for(int i = head[u]; i != -1; i = edge[i].nxt){ //枚举能匹配的点 int v = edge[i].to; //v为能与u匹配的点编号 if(vis[v]) continue; //利用一个vis判断当前点是否尝试匹配过,如果已经匹配过就跳过以防死循环 vis[v] = true; if(link[v] == -1 || dfs(link[v])){ //如果v可以腾出位置(即没有与v2中的任何一个点匹配或v2中还存在没有匹配过的点可以与之匹配) link[v] = u; //u与v成功匹配 return true; } } return false; } int getcp(int n){ int ans = 0; memset(link, -1, sizeof(link)); for(int i = 1; i <= n; i++){ //遍历每个点集v2中的点 memset(vis, false, sizeof(vis)); if(dfs(i)) ans++; } return ans; } int main(){ while(scanf("%d", &k) != EOF){ if(!k) break; scanf("%d%d", &m, &n); memset(head, -1, sizeof(head)); cnt = 0; for(int i = 1; i <= k; i++){ int u, v; scanf("%d%d", &u, &v); v += m; //把点集v1中的点的编号调整到点集v2后面 add(u, v); } printf("%d\n", getcp(m)); } return 0; } 参考博文 想理解匈牙利算法的概念,推荐阅读趣写算法系列之–匈牙利算法(推荐在教练的陪同下阅读) 评论区有朋友通俗易懂地概括了它的思想:先到先得 能让就让 hdu 2063 过山车 (匈牙利算法模板题) – 111qqz的小窝 编辑记录 2021-08-05 13:37:00
OpenJudge - 01:A+B问题 信息学奥赛一本通(C++版)在线评测系统 如果非要做这题我推荐第一个 OJ,第二个 OJ 的界面实在惨不忍睹 (虽然第一个题目有题号检索比较方便而且貌似用户比较多) 更好的选择是不要做《信奥赛一本通》的题 题目的背景、描述、输入输出格式样例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1000:入门测试题目 时间限制: 1000 ms 内存限制: 32768 KB 【题目描述】 求两个整数的和。 【输入】 一行,两个用空格隔开的整数。 【输出】 两个整数的和。 【输入样例】 1 2 【输出样例】 3 题意分析与算法设计 新手不用理会 时间限制 和 内存限制,一般来说学到后面才会出现 TLE(Time Limit Exceed,超出时间限制)和 MLE(Memory Limit Exceed,超出内存限制)的情况。 (关于这些术语,可以在这里了解。) 至于这个问题,就是一个最简单的 A+B 问题。 参考用完整代码 各位一定要养成良好的代码风格,因为代码不仅仅是给机器看的,有时候人也要看。 使用 cin/cout(需要调用 iostreeam 头文件): 1 2 3 4 5 6 7 #include <iostream> using namespace std; int main() { int a, b; cin >> a >> b; cout << a + b << endl; } 使用 scanf/printf(需要调用 cstdio 头文件): 1 2 3 4 5 6 7 #include <cstdio> using namespace std; int main() { int a, b; scanf("%d%d", &a, &b); printf("%d", a + b); } 这两种风格的输入输出各有长处,各位务必都要掌握。 实际上,第二份代码中没有用到任何 C++ 特性,因此不加 using namespace std; 也没关系。 为什么这种题你还要水一篇题解出来 编辑记录 2021-08-06 18:42:00 UTC+8 最后更新于 OCT 19, 2021 21:57 UTC+8
(题面来自洛谷) 题目描述 我国历史上有个著名的故事: 那是在2300年以前。齐国的大将军田忌喜欢赛马。他经常和齐王赛马。他和齐王都有三匹马:常规马,上级马,超级马。一共赛三局,每局的胜者可以从负者这里取得200银币。每匹马只能用一次。齐王的马好,同等级的马,齐王的总是比田忌的要好一点。于是每次和齐王赛马,田忌总会输600银币。 田忌很沮丧,直到他遇到了著名的军师――孙膑。田忌采用了孙膑的计策之后,三场比赛下来,轻松而优雅地赢了齐王200银币。这实在是个很简单的计策。由于齐王总是先出最好的马,再出次好的,所以田忌用常规马对齐王的超级马,用自己的超级马对齐王的上级马,用自己的上级马对齐王的常规马,以两胜一负的战绩赢得200银币。实在很简单。 如果不止三匹马怎么办?这个问题很显然可以转化成一个二分图最佳匹配的问题。把田忌的马放左边,把齐王的马放右边。田忌的马A和齐王的B之间,如果田忌的马胜,则连一条权为200的边;如果平局,则连一条权为0的边;如果输,则连一条权为-200的边……如果你不会求最佳匹配,用最小费用最大流也可以啊。 然而,赛马问题是一种特殊的二分图最佳匹配的问题,上面的算法过于先进了,简直是杀鸡用牛刀。现在,就请你设计一个简单的算法解决这个问题。 输入格式 第一行一个整数n,表示他们各有几匹马(两人拥有的马的数目相同)。第二行n个整数,每个整数都代表田忌的某匹马的速度值(0 <= 速度值<= 100)。第三行n个整数,描述齐王的马的速度值。两马相遇,根据速度值的大小就可以知道哪匹马会胜出。如果速度值相同,则和局,谁也不拿钱。 【数据规模】 对于20%的数据,1<=N<=65; 对于40%的数据,1<=N<=250; 对于100%的数据,1<=N<=2000。 输出格式 仅一行,一个整数,表示田忌最大能得到多少银币。 输入输出样例 输入 #1 1 2 3 3 92 83 71 95 87 74 输出 #1 1 200 分析 都在代码注释里了 代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 // Problem: P1650 田忌赛马 // Contest: Luogu // URL: https://www.luogu.com.cn/problem/P1650 // Memory Limit: 125 MB // Time Limit: 1000 ms // // Powered by CP Editor (https://cpeditor.org) #include<bits/stdc++.h> using namespace std; int n, a[2001], //田忌的马 b[2001], //齐王的马 m1, m2, qian; int main(){ scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]); for(int i=0;i<n;i++) scanf("%d",&b[i]); sort(a,a+n); sort(b,b+n); int n1=n-1, n2=n-1; while(m1<=n1){ if(a[n1]>b[n2]){ //田忌最快的比齐王最快的快 qian+=200; //赢钱 n1--,n2--; //两边各去掉一匹马 }else if(a[n1]<b[n2]){//田忌最快的赢不了齐王最快的,就丢一匹最慢的 qian-=200; //输钱 m1++,n2--; }else{ //如果 势 均 力 敌 的话 if(a[m1]>b[m2]){ //田忌最慢的能赢齐王最慢的,就上 qian+=200; //赢钱 m1++,m2++; }else{ //赢不了就用最慢的消耗齐王最快的 if(a[m1]<b[n2]) qian-=200; //我 再 忍 你 一 手 m1++,n2--; } } } printf("%d",qian); return 0; } 修改记录 2021-02-19 19:20 发布于博客园 2021-08-06 17:57 迁移自博客园 搬文章的时候瞎画的封面图还是决定不摆上去了…
正经解释 简称 全称 中文称谓 补充说明 & 修改建议 OJ Online Judge 在线判题系统 可以对你的程序进行评测并给出结果。洛谷、SPOJ、Codeforces、Vijos、UVa OJ 都是在线判题系统 AC Accepted 通过 嘲讽你还没过的同学 想想在时间和空间上能否做到更优,或是继续做其他题目 WA Wrong Answer 答案错误 你的程序在规定的时间和内存限制内里输出了错误的答案,因此没有得分(想一想,有没有没有考虑到的特殊情况?如果你的程序根本无法对样例输入输出正确的答案,那么你的思路很可能有问题) TLE Time Limit Exceed 超出时间限制 你的程序在该测试点上超出了题目给定的时间仍未结束运行,因此被强行中止(检查是否存在死循环或过多的循环,使用时间复杂度更优的算法,进行一些常数及输入输出优化,剪枝)如果你的程序能正常给出答案,记得使用循环控制语句 break 或 return 0、exit(0) 这样的语句结束程序;在一些评测系统老旧的 OJ 中,没有读入完输入的数据也会造成 TLE,但是在洛谷不会发生。 OLE Output Limit Exceed 超出输出限制 你的程序在这个测试点中输出的字符数量超出了限制,因此被系统强行中止(检查是否存在死循环和没有注释掉的调试用输出语句) MLE Memory Limit Exceed 超出内存限制 你的程序在运行过程中占用了过多的内存,因此被系统强行中止(检查是否在程序中使用了过大的数组或是往 STL 容器中存入了过多的数据) RE Runtime Error 运行时出错 检查是否存在数组越界访问(尤其是C(++)语言选手)。另外,如果你在 main 函数中返回一个非 0 的值也会被系统认为程序异常退出 PE Presentation Error 格式错误 检查输出的空格/换行符数量是否与题面中的要求严格一致 CE Compile Error 编译错误 你的程序根本无法通过编译,也就没有可执行文件可以用来评测(检查语法,初学者建议着重检查分号和全角标点,建议敲代码时禁用中文输入法) UKE Unknown Error 未知错误 评测姬也不知道出了什么问题(联系 OJ 管理员或出题人,稍后再尝试重新提交) 哈哈太搞笑了 简写 全称 中文称谓 AC Answer Cubi 粗鄙的答案 WA Wonderful Answer 优美的答案 TLE Time Limit Enough 时间充裕 OLE Output Limit Enough 输出足够 MLE Memory Limit Enough 内存充裕 RE Runtime Excellent 运行时(过于) 优秀 PE Pretty Excellent 十分优秀 CE Compile Easily 轻松通过编译 UKE Unbelievable Keeping Excellent 难以置信的保持优秀 AC=Answer Cubi 粗鄙的答案 WA=Wonderful Answer 优美的答案 TLE=Time Limit Enough 时间充裕 OLE=Output Limit Enough 输出足够 MLE=Memory Limit Enough 内存充裕 RE=Runtime Excellent 运行时(过于)优秀 PE=Pretty Excellent 十分优秀 CE=Compile Easily 轻松通过编译 UKE=Unbelievable Keeping Excellent 难以置信的保持优秀 出现AC时你需要将你的答案变得更优美才能通过; 而TLE、OLE、MLE、ER经常同时出现,可以给予你少量的额外分数; PE、CE都能给予你大量的额外分数; UKE这个标签非常稀有,可以让你直接通过这次比赛并名列前茅。
欢迎来到新版友链页面!回到旧版以查看更多链接 欢迎申请友链,把你的站点名称、简介(不要太长)、地址和图片发在下方评论区或我的邮箱(LinkApply@ImAyx.top)即可。当然,通过 IM 联系我也是可以的(
服务器目录/config/paper-global.yml 中修改以下配置: 无头活塞: 1 allow-headless-pistons: true 刷线机: 1 allow-tripwire-disarming-exploits: true
2577 天前,我上传了我的第一个转载视频(BV1Zx411h7ue),它来自 YouTube。 到今天为止,我陆陆续续搬运了共 21 个 YouTube 视频,虽然中间中断过长达 694 天,但近两年我又开始偶尔搬运几个了。 想写这样一篇文章也有一阵子了,还是就发在 bilibili 上吧。也许会同时发在我的个人博客(ayx moefox tech)上。 专栏仅支持编辑三次,我会很谨慎地使用这三次机会。这是第一次。 下面包含很多我的个人观点,欢迎各位提出建议和意见。 不同意我的看法也请不要进行任何形式的人身攻击,否则我只能直接举报拉黑,谢谢。 不知道我为什么要说上面那句话。 我不清楚专栏是否允许包含外链(格式工具是仅支持站内链接),尤其是这些网站很明显都没有也不会备案,因此我会在评论区置顶评论中把我经常用来下载视频文件本身、封面(strerr com)、软字幕(downsub com)文件的网站以及工具的地址放出来。 关于取得原作者的授权 很惭愧,这件最重要的事情我做的相当不足。唯一成功取得授权的一次是这次。 一些原作者很神秘,没有在主页和视频简介中留下任何联系方式,在社交媒体上也搜索不到他们的名字。 可以用来联系原作者的途径包括但不限于 Email(电子邮件)、Twitter Direct Message(蓝鸟私信)、Ins DM(绿洲的copy对象)、Discord/不和谐(国内有类似的Oopz、KOOK)、TG(电报)。你也可以在原视频下发评论看看作者会不会回复。 有些频道体量太大了,我都觉得我不值得浪费原作者的时间。 我也不觉得把我的授权请求发到别人的商务合作邮箱里是个合适的做法。 我就不应该在未经授权的情况下搬运这些频道的视频的,虽然别人也这么做,但那不是我这么做的理由。这也是我写这篇文章前犹豫的原因,因为我自己也许就算不上一个“合格的搬运工”。 当然,在简介中写明禁止搬运的视频我是绝对不会搬运的。其实这种视频也很少见。 关于视频本身 我的原则是,只搬运自己喜欢的。如果我自己都没看完这个视频,搬运它干嘛呢? 我从来都是直接下载高画质的视频文件再上传到b站,而不是使用屏幕录制软件录制。这样不仅节约时间(使用录制的方法搬运一个十分钟的视频很明显就需要录制十分钟),而且能尽量将视频按原样不降低画质地提供(虽然一开始我只会使用一些提供粘贴视频链接并下载的网站来获取视频,画质会被限制在 720p,因为 YouTube 对于 1080p 及以上的画质似乎是把画面和音频分离存储的,你需要下载后手动使用 FFmpeg 或借助基于 FFmpeg 的脚本/程序合并出有声音的视频),我认为这也是对原作者的一种尊重。 至于b站的投稿工具,我使用得比较少,YouTube 本身就会压缩视频的码率,b站似乎不太会进行二次压缩。更何况这个工具仅支持手机验证码登录,对我这个懒人来说每次都要登录太麻烦了。不过,要上传多P视频似乎只能通过这个工具了,不知道现在是否还支持使用多P功能,b站似乎想把这个功能升级成合集还是什么其它东西。确实,一个多P视频只能点赞投币收藏三连一次,对一些做游戏攻略(尤指方舟作业)的UP主似乎有些不公平。 最后,我从来没想过我搬运的视频会浪费b站的服务器硬盘空间。这不是我该考虑的问题。 关于封面图 一开始我会任由b站自动从视频中截取,但近两年我都会获取原视频的最高分辨率的封面图并上传。 下载下来的封面图上传到b站总会需要截掉左右两边的一部分,因此有几次我使用了 MSPaint(画图)重新调整尺寸,也就是把封面图压扁,但我最近看着被压扁的封面图觉得这不是什么好做法,也就没再这么做了。 选择视频类型和填写原视频链接 原创和转载这个选项被选择并投稿后就无法修改了。如果你想把转载的视频标为原创,除非你与原作者取得了联系、达成了共识并商议好了收益问题(如果你的账号能获得创作激励),否则,请不要再读这篇和我的其他任何文章了,我和我的文字都不想看到你,你是最令我所不齿的那类人之一,get the f*** out. YouTube 似乎不会对分享的链接加入任何追踪参数,点击分享按钮后复制链接即可,这个链接比你从地址栏里复制的更短,最后一个斜杠后面的随机字母数字组合即是视频 ID。 当然,如果你不喜欢使用 .be 后缀的域名也可以从地址栏中复制 .com 后缀的,但我建议去掉后面乱七八糟的没用参数(如果有,比如&t=1s这种定位到某个时间的)。 我认为填写原视频链接也是对原作者的一种尊重,同时这也能方便其他人(观众/搬运工)用原视频的视频ID找到你搬运的这份副本。 关于标题 一开始我似乎直接沿用原视频的标题(当然现在对以前搬运的稿件也进行了修改),后来会进行笨拙的翻译,如果长度限制宽裕的话会把原来的标题也塞到后面方便来找带字幕版本的b站用户和其他想检查这个视频是否已经被搬运过的搬运工搜索。 关于标签 很明显,在b站上的视频必须有至少一个标签。 选好分区后我大概率会把分区和原作者的ID/频道名加进标签里,一开始可能参考了其他UP主搬运的同一作者的视频,最近还会参考 SocialBlade 对于原视频提供的 tags。 我这个人比较强迫症,因此会尽量凑满十个标签。 关于简介 最近的稿件里我会建议网络环境符合条件的观众在喜欢这个视频的情况下给原作者点个赞,并考虑订阅原作者的频道,同时放上原作者的主页地址。 我也会在限制字数够用的时候放上原视频的简介,有时候这部分也会简单翻译一下。 你不需要在简介里放原视频的链接,在选择转载后出现的那个单独的文本框里填写就行了。它会出现在简介的上方。 关于字幕 我从来都只使用CC字幕(其实也就这两年开始对一些短视频提供字幕),或者叫软字幕/隐藏式字幕,而不是把字幕压制进视频里,因为这会面临很多问题,比如想改一个错别字或一个单词就得重新渲染一遍整个视频,观众无法自主选择字幕的语言、大小和字体等样式,会挡住原视频的画面等等。主要原因还是因为我懒,根本不知道怎么把字幕压进视频里。CC字幕好处挺多的,为什么不用呢? 一些视频已经在 YouTube 上提供了中文的CC软字幕,这很好,我会直接把中文字幕扒下来(下载 .srt 文件,别下载成没有时间轴的 txt 了)在稿件过审后上传:因为b站不支持在投稿视频的同时提交软字幕。 但值得肯定的一点是,可以允许观众投稿字幕。观众投稿的字幕在展示前需要经过你的审核。如果你懒得翻译中文字幕,不妨等着观众来投稿,虽然大多数情况下你一份机翻字幕都不会收到。 不硬压字幕的另一个问题在这里就体现出来了:一些视频在b站上明明已经存在好几份良莠不齐(视频本身的画质和封面图的质量、标题简介标签和字幕的质量)的副本了,却不能允许我再撞一下这个车,但其他将字幕硬加到视频上的UP主却不受此限制(心理不平衡了有点)。我无力改变这样的现状,只能远离这些已经被搬运过的视频。 对于没有提供中文字幕的视频,如果有创作者自行上传的英文字幕我同样会原样提供,并翻译成中文(现在似乎还有一个视频的这项工作没完成);另外,一些自动生成的字幕质量其实也不错,只是在一些单词上需要手动调整大小写和拼写错误这些细节。 至于连自动生成的字幕都没有的视频,我精力有限,不会去做时间轴,太累了(虽然似乎可以打好字幕后使用一些AI驱动的工具来帮我对时间轴,但翻译需要对照英文原文,我还得把英文字幕打出来),更多情况下根本不会搬运。 除了中文和英语我目前不会第三种语言,因此其他语言的视频如果创作者没有提供中文字幕也拜拜了,因为我看都看不懂,这时候再搬运就违反了我“只搬运自己感兴趣的视频”的原则。更何这时候大多数b站用户可能都看不懂,我也不能提供字幕,这个搬运有什么意义呢? 如何防止撞车 很明显,我在上一节中已经提到了这种乱象:就算这个视频已经被搬运过了,只要你把字幕加到原来的画面上再投稿,也有可能过审而不会被判定为撞车。但我不推荐这么做。 在搬运之前,你可以用原视频链接的视频 ID,即等于号(=)后面那串和BV号相似的随机数字和字母的组合在b站搜索看看这里是不是已经存在过审的副本了,直接粘贴完整的链接搜索也可以,但建议去掉后面乱七八糟的追踪参数以提升准确性(我也说不准,反正我用的就是视频ID)。原视频的标题当然也要用于搜索,同时我也会试着用简明的中文翻译进行搜索,但是就算做到这一步还是会有撞车的情况出现,我觉得也无法避免了。 撞车判定也会出现误判,如果审核没有提供与你的稿件撞车的BV号,可以申诉要求提供。 搬运视频的吸粉与变现 我目前见过的变现方式除了最让我不齿的伪原创外,也就剩下修改原视频加入广告和在评论区置顶放广告了,因为创作激励计划很明显不会给转载视频任何收益。 我也是一个从搬运视频中小有获益的UP主,一个快10万播放的搬运视频(我认为能有这个播放量主要是因为标题能把人骗进来,我也不知道为什么大家都会被那个标题吸引)让我骗到了300个左右的粉丝(这其实让我感到有些“德不配位”)。当我穿插着投稿原创视频的时候,这些从搬运视频吸引来的粉丝理论上也会给我的原创视频带来一些流量(虽然我的这些粉丝似乎都不怎么活跃)。 我的思考 钱是个好东西。谁不喜欢钱呢? 但我不会去赚我认为本不应该属于我的钱。抹水印盗视频、利用信息差搞抄袭和伪原创,我都不会去碰,不管在什么平台上。 一些视频在b站上火了,在原来的平台上却反响平平。如果原作者能从b站的流量中获得收益,或许会是件不错的事情。但搬运者投稿前也不会知道它会获得多少播放,几百个还是几百万个。 后记 写着写着就三千多字了,在纸上写作写出这个字数是我不敢想象的。 其实写得挺乱的,或许之后会再修改润色一番。
Cloudflare Pages: https://e.imayx.top/ 似乎在网络条件合适的情况下访问体验比较好? GitHub Pages: https://g.imayx.top/ 有时候证书会抽风,自身支持 IPv6,因此关闭 Cloudflare Proxy 不影响纯 IPv6 用户访问 Vercel: https://imayx.top/ 综合考量下目前的主站,不支持 IPv6,但通过 Cloudflare Proxy 可支持 IPv6 访问 Netlify: https://n.imayx.top/ 感觉不是很稳定。。
原来直接从微软商店下载的方法已经失效了,我在这里分享一个离线安装包:来自设备制造商的 HEVC 视频扩展.zip - 蓝奏云 一般下载 x64 的直接打开安装就行了。 以下内容已失效 点击下面的链接即可调起 Microsoft Store 并打开「来自设备制造商的 HEVC 视频扩展」页面,直接点击安装即可。个人认为它的功能和收费 7 元人民币的「HEVC 视频扩展」相同,甚至近似大小也一样(都是 7.0 MB)。 ms-windows-store://pdp/?ProductId=9N4WGH0Z6VHQ 如果点击上面的链接没有反应,或者你现在使用的设备没有安装 Microsoft Store,可以点击下面的链接打开网页版 Microsoft Store;但是,这也不能让你把这个应用添加到你的微软账号的库中。 https://www.microsoft.com/zh-cn/p/hevc-video-extensions-from-device-manufacturer/9n4wgh0z6vhq 这篇文章在知乎上的链接:https://zhuanlan.zhihu.com/p/492933007
Test This Page is written in Vim!
如题,本站域名已更换为 imayx.top。 ablo.ga 已确定无法续期,因此使用 301 Moved Permanently 跳转至 imayx.top 终于不是一个二级域名了( 假如几年后你找到了这个页面的存档,也许你可以通过 https://ayx03.github.io/、https://jmpyx.github.io 或者 https://icp.gov.moe/?keyword=20213003 找到本站。 Edit log 2022-07-29 09:42:00 2023-05-03 13:10:00 2023-05-03 13:10:00
关于我 有事找我请首先考虑发邮件,但是你大概率也没什么事找我。 我的邮箱: from_hugo_blog@imayx.top 请注意:由于收信服务没有发邮件的功能,我会使用另一个邮箱回复。 我还在 bilibili @Ayx0 (uid13509072) (主账号 & 直播号) @ImAyx (uid155826488) GitHub @Ayx03 知乎 @ImAyx 更新记录 1 2 3 2020-12-26 21:45:00 2022-03-08 22:44:00 2023-03-01 16:24:00
你知道吗? 大屏访客点击右边的目录即可直接跳转到对应站点 个人博客 关于晚晚秋的一切—— 晚秋秋~ 一条鱼 的博客 洛谷@我和鱼过不去 她 AK 了 IOI ! 在 IOI 中获得满分,俗称 AKIOI Rosyr 的博客园 Rosyr 用来记录学习轨迹的地方 Avatar | 洛谷@syr050301 | bilibili@-Rosyr- TA AFO 了。 组织/项目 萌狸科技 本站隶属于萌狸科技。 淀粉月刊 接力曾经的《少年电脑世界》!简介/我们的故事 中文独立博客 如果你想找到更多像本站一样拥有自己的域名且相对自由的博客站点的话… 萌国ICP备案 本站仅在此处进行过ICP备案,备案号为20213003。 提问的智慧 简体中文版 很有幸参与了一些贡献,虽然第一次发 Pull Request 没意识到 patch-1 分支里的后续 commit 也会被同步到 pr 里被骂了… A Dark Room 小黑屋,一款被移植到网页上的文字游戏,挺有趣的。 支持以一串 Base64 编码后的 json 进行存档导入/导出。 如果 Vercel 在你所在的地区或使用的线路访问缓慢,试试 GitHub Pages: https://g.imayx.top/ADarkRoom/ mergemp4 利用 FFmpeg 在现代浏览器中合并 .mp4 格式的视频和音频,原作者为 maple3142。 目前似乎不可用。肯定不是被我搞坏的! GitHub 存储库 申请交换友链 为了减少本站(现在不太可能会,但仍有可能)更换域名带来的不便,本站的链接请使用 https://ayx03.github.io/ 而不是 https://imayx.top/ 发在评论区与邮箱(aynxul03@gmail.com)的申请(格式不限)我都会在看到后尽快回复。 本站域名更换记录 aynxu.l03.me 已于2021年12月19日过期。本站域名已更换为 ayx.moefox.tech。 ayx.moefox.tech 已于 2022 年 7 月 25 日过期。本站域名已更换为 imayx.top。 后记 右边的目录似乎出现了一些问题… 已解决(临时降级到 hugo-theme-stack v3.7.0) 已彻底解决(Stack 主题修复了这一问题(#459) 其实又出了一些问题,但是我假装没看见,然后现在解决了(#631 更新记录 1 2 2021-07-23 ??:??:?? 2022-02-12 23:48:00
前言 如果您的手机正处在无限重启(Bootloop)的状态,请看这一节(点击跳转)来了解解决方案。 如果您使用的是其他型号或版本的手机(甚至可以不是 LG 的手机),本教程也可能部分(但不太可能完全)适用于您。 本教程旨在整合其他资源和教程以节省韩版 LGU+ 的 LG V50 ThinQ 用户的时间,因此如果您的机器版本或型号不同,它可能浪费您的时间,甚至对您的设备造成不可挽回的损坏。 无论如何,请谨慎操作,尤其是在 Download 和 9008 模式下进行操作时一定要三思而后行,选用可靠的数据线,保持耐心,因为它们造成的损坏很可能无法通过简单地在软件层面进行操作来恢复。 拆箱收货 笔者建议您签收贵重物品前先与快递员当面验货,或在快递柜旁拆开,以避免不必要的纠纷。 不过,笔者自己从来不这么做。 如果卖家声称您购买的机器有以下特性,您可以用下文所述的方法验证他们的描述是否属实。 气密性 (该部分适用于其他出厂时支持 IP68 防水且有气压传感器的设备) 普遍的检测方法是使用 DevCheck 显示气压传感器的数值(其实系统自检中也可以查看压力传感器的数值,但是我更喜欢使用 DevCehck) DevCheck 的包名:flar2.devcheck 蓝奏云下载:https://cpk.lanzoui.com/iZdritwxo8b 打开传感器中的压力传感器 堵住右下角扬声器左侧的小孔(对于 LG G8 ThinQ,这个小孔在左上角;别问我为什么知道,因为我也用过) 用力按压屏幕后松开(小心别把屏幕压碎了,适可而止;别问我为什么要提一嘴,因为我压碎过)。 如果气压值的波动大于 10 hPa,那么这台手机很可能有气密性,可以下水。 气密性好的组装机波动甚至能达到 40 hPa,因此是否有气密性不应作为判断手机是否原装的标准。 但是请注意,不要将手机置于热水或蒸汽中。防水功能防水溅不防手贱,不建议经常性主动下水,也不要跟我一样想出水下跑分或者半浸没充电这种操作。 完美屏 一般指显示和触摸功能完美(没有彩点、黑块或绿线黑线),全原装非后压屏的机器外屏没有任何划痕的应该很少。 获取 IMEI 并记录,查询手机版本 得到 IMEI 的几种方法: 正常进入系统时,打开拨号键盘输入 *#06#; 正常开机进系统后在 设置-关于手机 中查看; 关机后长按开机键、音量上下键,同时按住。 查看手机背面的标签、包装盒上的标签(二手机可能没有); 记录好 IMEI 后可以在这里使用它查询来获得关于这台手机很多有用的信息,包括但不限于运营商(简称)、国家、区域、CPU 类型、手机型号、颜色、S/N 码、CSN 码、生产与出厂日期,但 KDZ 相关的四项信息似乎总是空白或没有。 查询手机的型号和版本就是为了下载对应版本的 KDZ(类似于其他安卓手机的线刷包,不懂也不用慌),避免浪费时间。 http://www.lgbbs.com/lg_mobile-lg_mobile.html (这个地址似乎暂时无法访问了) 升级 Magisk 版本 此部分适用于收到时卖家已帮您刷好旧版 Magisk 的机器。 旧版 Magisk 除了用于授予应用 Root 权限外能刷入的模块非常有限,因此我们需要升级 Magisk 版本。 推荐先升级 Magisk Manager(新版去掉了 Manager 的后缀),再升级 Magisk 本体。 但是,先别急着使用直接安装升级 Magisk,这很可能导致您的设备陷入 BootLoop(无限重启)的状态中(如果您甚至无聊到启用了安全启动),而且您还有可能完全不知道怎么让它停下来。 正确的做法应该是把新版 Magisk 的 .apk 文件扩展名改为 .zip,然后以安装模块的方式在 Manager 中刷入。 破解 VoLTE 我还没成功… 破解 5G 卖家已经帮你破解好了 VoLTE,移动卡电信卡都能边打电话边上网了(如果没有破解 VoLTE,电信卡无法正常使用),但你还听说这是一台 5G 手机? 其实,它似乎只支持联通与电信的 5G 频段。并且它只支持 NSA(非独立组网模式)而不支持 SA(独立组网模式)。 我没有开通 5G 套餐,也没有换新的 USIM 卡,可以用 5G 吗? 不存在只支持 4G 而不支持 5G 的 UIM 卡,并且未开通 5G 套餐也可以连接 5G 网络,只不过速度会被限制在 300 Mbps。开通 5G 套餐后可享受 500 Mbps 或 1 Gbps 甚至高达 4 Gbps 的速率。 能不能成功,一试便知。 下载 QPST TOOL 并安装,同意许可协议一路 Next 最后 Finish 即可。LG 驱动同理。 https://cpk.lanzoui.com/i0cvUtwz3qf https://cpk.lanzoui.com/i8Edvtwz7be 替换用文件,记得去掉 .txt 的后缀,笔者加上此后缀是因为蓝奏云不支持上传 .xml 格式的文件。 https://cpk.lanzoui.com/iDTmPtwza4f 电脑下载文件的同时,手机上也可以操作起来了。 打开拨号键盘,输入 *#546368#*500# 进入 HiddenMenu(隐藏菜单) SVC Menu - LDB - USB debugging 打钩 SVC Menu - Port Check Test 选择 Enabled 设置 - 系统 - 关于手机 - 软件信息 - 内部版本号 - 连续点击7次 - 您现在是开发人员! 设置 - 系统 - 开发人员选项 - 开启 - 启动 OEM解锁 - 启用 设置 - 系统 - 开发人员选项 - 开启 - USB调试 - 确定 USB 线连接 PC 下拉菜单更改 USB 选项 选择 仅充电 USB 调试授权 同意 设置 - 网络和互联网 - 绑定 - 开启 - USB绑定 如果你的桌面上有「LG 网络」这个 App,可以直接用它进入 Hidden Menu 和 Field Test 等隐藏菜单,无需繁琐地在拨号键盘中输入代码。 「绑定」实际上是网络共享的意思,官方系统的中文翻译很有问题。(甚至比机器翻译还烂) 好的,现在我们打开 QPST Configuration,点击右下角的 Add New Port 按钮。 如果你的手机已经以正确的姿势连接到了电脑,那么应该有一个端口后面显示 (LGE Mobile USB Serial Port)。选中它,OK。 然后在菜单栏的 Start Client 中选择第一项 EFS Explorer,选择刚刚添加的端口,OK。 成功连接并打开类似文件资源管理器的界面后,在左侧找到 policyman 文件夹,选中其中的所有文件(包括子目录 persisted_items),右键选择 Delete 或者按键盘上的 DEL 键删除。(建议备份一份,但这个 Explorer 似乎只支持每次传输一个文件到电脑) 然后把刚才下载的 carrier_policy.xml(记得去掉 .txt 后缀)拖进去(或者右键空白处选择 Copy Data File from PC) 重启手机,大功告成。 如果重启完移动数据的图标还是 4G 或者 LTE 也不用灰心,在拨号键盘中输入 5457#*510# 进入 Service Menu,选择第一项 Debug Screen,如果 NR5G Link 冒号后面的数字为 1,那么恭喜你破解成功了,只是你所在的区域暂时没有 NSA 5G 覆盖或者已经退网了。 如果破解 5G 后在拨号键盘输入 5457#*510# 没有反应,在 *#*#4636#*#* 中查看也是可以的。 以上内容修改自:LG V50S 开5G教程 LG V50适用-855板块-LG社区 使用 LG UP 来更换系统版本 安装并破解好 LG UP,同时下载好对应版本的 .kdz 线刷包文件。 将手机关机后在插入数据线的同时按住音量加来进入 Download 模式,数据线另一头需要事先连接到电脑。 线刷时请选择可靠的数据线,过程中一定要耐心等待,千万不要在进度条跑完手机端自动重启前断开数据线。 打开 LG UP 并拖入 KDZ 即可开始刷机。 保持默认模式(第一个),不会造成 BootLoader 被自动回锁。 一般两三分钟即可完成,完成后手机会自动重启。 韩版的 KDZ 中一般包含很多无用的 App,能卸载的开机后建议尽快卸载,嫌麻烦也可以刷完先硬格一次以清除所有预装应用,具体方法在下方。 (该章节尚未完成) 意外与失败的处理 对于 Bootloop(无限重启),首先尝试硬格。 同时按住电源键和音量下键 8 秒左右,当第一屏(即显示手机型号的画面)亮起时松开,3 秒后再次按住电源键,即可进入硬格菜单。 用音量减切换到 Yes,用电源键确认,Erase(擦除)很快。数据飞灰烟灭。 此操作在刷入 TWRP 后不会擦除手机,而是会进入 Recovery,且通过此方式进入一般触屏功能可以使用。 LG UP 线刷救砖 只要你还能进入 Download 模式,就能使用 LG UP 刷入官方 KDZ 来进行线刷救砖,无需冒险使用 9008 进行救砖。 详见「使用 LG UP 来更换系统版本」一节。 鸣谢 对本文启发很大的 LG 855系列-快速黑砖手册 愿你刷机半生,归来仍是黑砖
请善用右侧的目录(如果有)来跳转到你需要学习的部分。 安装 Python 3 本体与集成开发环境 如果你已经完成了这些准备工作,可以使用右侧的目录跳到下一章节 - 你好,世界。 Python 3 本体(包括 IDLE) 前往 Python 官网下载。 https://www.python.org/downloads 打开该地址时网页会自动识别你的操作系统并为你推荐合适的 Python 3 版本,一般情况下点击黄色按钮下载即可。目前的最新版本为 3.10.4。 Windows 用户 Windows 8/8.1/10/11(非 LTSC 版本)用户也可以在 Microsoft Store 免费获取 Python 3.10 或 Python 3.9。 LTSC 版本的 Windows 没有自带微软应用商店,但其实也可以自行安装。篇幅所限,感兴趣的自行 Google。 如果你还没有安装过任何版本的 Python 3,在命令提示符/PowerShell 中输入 python3 并回车可以直接唤起 Microsoft 商店并进入安装页面。 需要注意的是,如果你使用的是比 Windows 8.1 或 Windows Server 2012 更旧的操作系统,你将无法安装 Python 3.9.0 及更新的版本。你仍能安装 Python 3.8.10,但对 Python 3.8.x 的支持将于 2024 年 10 月终止。 安装时记得勾选 Add Python 3.x to PATH,这样就不需要手动配置环境变量了。 如果你没有正确地配置环境变量,你需要手动 cd 到 Python 的安装目录下才能使用 python 等命令。 Linux/UNIX 用户 Ubuntu 18.04/20.04 用户可以参考这篇教程:https://phoenixnap.com/kb/how-to-install-python-3-ubuntu 其他 Linux/UNIX 用户请继续阅读这一小节。 Linux,30 岁生日快乐! 这是你的生日蛋糕,你 ** 自己编译去吧。 大多数 Linux 发行版可能自带了 Python 2,由于一些程序仍需依赖它来运行,并不建议将其卸载。 可以使用 python --version 来检查已安装的 Python 版本。 为 Python 创建一个安装目录,然后在下面的页面下载源代码,并解压到刚刚创建的目录中。 https://www.python.org/downloads/source/ 使用 yum 命令安装编译 Python 时需要用到的依赖包。 1 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel 指定安装路径 1 ./configure --prefix=/root/python310 解压后使用 make 命令编译,编译完成后使用 make install 安装。 为 python3 和 pip3 建立软连接。 1 2 ln -s /root/python3102/bin/python3102 /usr/bin/python3 ln -s /root/python3102/bin/pip3 /usr/bin/pip3 macOS 用户 https://www.python.org/downloads/macos/ 分为 Intel-only 和 universal2 版本,部分 Release 仅提供后者。 Apple Silicon(M1 系列 arm 架构芯片)用户请选择后者。 iOS、iPadOS 和其他操作系统用户 https://www.python.org/download/other/ 安装好后,在命令提示符(Command Prompt)/PowerShell(macOS/Linux 是 Terminal) 中输入 python -V 来查看版本信息。 打开运行(按下键盘上的 Win+R),输入 python 即可进入 IDLE 的命令行版本 在 Windows 的开始菜单里你也可以找到有图形界面的 IDLE。 PyCharm 支持 Windows、macOS(Intel/Apple Silicon)、Linux。 前往 JetBrains 官网下载安装包。 https://www.jetbrains.com/zh-cn/pycharm/download 如果你没有教育邮箱可用于申请免费的 Professional Edition,推荐下载免费且开源的 Community Edition。 Ubuntu ≥ 16.04 用户 也可以使用 snap 安装 PyCharm: sudo snap install [pycharm-professional|pycharm-community] --classic 你也可以选择安装 Spyder 等其他 IDE,或者干脆使用一个文本编辑器(如 vim、Sublime Text、Notepad3 等)。 本文所使用的环境 这篇笔记将使用 PyCharm Community Edition 2021.3.2 和 Python 3.10.2。 使用更新版本的 PyCharm 或其他 IDE/编辑器通常不会产生问题。 你好,世界。 打开 PyCharm,新建一个项目。 暂时不需要特别配置解释器,保持默认即可; 如果你想保持些神秘感,记得取消勾选 Create a main.py welcome script; 或许在只有一个文件的情况下使用 IDLE 是更好的选择,等待 IDE 自动配置环境。 在左侧的资源管理器中右键你刚创建的项目,选择 New > Python File,为你的第一个 Python 程序起一个你喜欢的名字。不过,它不能以数字开头。 print 语句 双击刚刚创建的文件,在右侧打开的文本编辑区域输入 print("Hello World!")。 编写大多数编程语言的代码时,都要记得切换到美式键盘或英式键盘而不是使用中文输入法(如果你没有,在语言和键盘选项中添加一个),以免错误地输入全角的逗号,、句号。、引号“”、中括号【】以及小括号()。 像其他大多数 IDE 一样,PyCharm 会替你自动补全括号和双引号,你只需要打左半边就好。 按下 Alt+Shift+F10(或在 Run 菜单下选择 Run...),选择你的文件。 下方弹出的窗口中输出了 Hello World!。 程序结束时的返回值 Process finished with exit code 0 表示程序正常结束; 相反地,Process finished with exit code 1 则表示程序异常退出。 在这点上 Python 与 C/C++ 惊人地相似。 变量 现在你已经会用 Python 打印文字了! 但为了利用 Python 处理数据,我们总得把数据先存在什么地方而不是写死(hardcode)在代码里吧? 在 Python 3 中,第一次使用一个变量名时为其赋予的值决定了它之后能存储的数据类型。 你不需要像 C++ 那样为变量指定一个类型,也不会出现像 C++ 的主函数中定义的变量一样的奇怪数据。 string 类型 几乎可以存储你想存的任何数据。 你可以用一对单引号 '' 或一对双引号 "" 来把字符串括起来,以区别于需要 Python 解释器处理的代码。 为变量赋值时,把变量名写在左边,用等号与右边的值连接。 不明白?看看例程吧。 示例程序1: 1 2 username = 'Aynxul03' print("Hello " + username + "!") 运行,输出为 Hello Aynxul03! 示例程序2: 1 2 3 4 5 username = 'Aynxul03' password = '123456' print("Hello " + username + "! Your password is " + password) password = '654321' print("Hello " + username + "! Your password is " + password) 运行,输出为 Hello Aynxul03! Your password is 123456 Hello Aynxul03! Your password is 654321 未完,待续 Changelog 2022-03-08 22:38:00 新增变量[string 类型]、小标题#本文所使用的环境、程序结束时的返回值,为 Windows 外的操作系统提供 Python 本体的安装教程,修改了一些格式与排版,改善阅读体验。
今天终于找到自己的 Hugo 站点文件了… 没别的,就感觉快过年了该发篇博文。 这次我在慎重考虑后对博客进行了一些大刀阔斧的改版: 移除了博客中的所有「分类」,各位仍可使用首页右侧的「标签云」或「标签」页面。 将个人博客的友情链接和各种组织和项目的链接页面合并为一个页面。 更新到 hugo 及 hugo-theme-stack 的最新版本。 在页脚添加了关于使用 Google Analytics 收集用户数据的声明 把本站的锅全甩给了 GitHub Pages 和 Cloudflare。 不过,今天还是没把评论回复的邮件通知配置好… 因为我忘了怎么整了,还得再仔细看文档…
你以前也许听说过或用过 Valine。Waline 与它差不多,但管理功能集成在内,并可以更方便地部署。 如果你使用其他没有 Waline 支持的 Hugo 主题或其他博客系统,按本文部署后可以参考官方文档来引入客户端。 在 LeanCloud 上部署数据库 注册 LeanCloud 国际版并进入控制台。 如果您决定使用 LeanCloud 国内版,您需要为您创建的应用额外绑定已备案的域名。 创建开发版新应用(随意命名)并复制设置 - 应用凭证中的前三项值,稍后会添加在 Vercel 中的环境变量里。 在 Vercel 上部署服务端 (推荐)使用 GitHub 登录,创建存储库(可以是私有 Repo),跳过创建团队(反正这也不是什么需要团队协作的项目),部署。 两分钟左右部署就会完成。 完成部署后在 Settings 中找到 Environment Variables,分别添加三个环境变量 LEAN_ID、LEAN_KEY 和 LEAN_MASTER_KEY 。VALUE 分别填写在 LeanCloud 中获得的 APP ID、APP KEY、和 Master Key。 记得注册你的管理员账号,以免被访客注册。第一个注册的用户会得到管理权限。 在配置文件中配置客户端 最后打开站点根目录下的 config.yaml,在 params 下添加以下几行:(如果你当初拷贝了 Stack 提供的 config.yaml 文件,那么这段在第 60 行左右,只需填入 serverURL 即可) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # Waline client configuration see: https://waline.js.org/en/reference/client.html waline: serverURL: https://<PUT_YOUR_OWN_HERE>.vercel.app/ lang: zh-CN visitor: true avatar: emoji: - https://cdn.jsdelivr.net/gh/walinejs/emojis/qq requiredMeta: - name - email - url placeholder: locale: admin: Admin 记得替换 serverURL 为你自己部署的 Vercel App 地址,在这里查阅各项参数的含义。 快速上手 | Waline 然后可以使用 hugo server 看下效果,使用 Waline 时不会像 disqus 一样在本地预览时屏蔽评论。 Emoji 你可以为你的 Waline 客户端添加多套表情。 题外话,严格来说,这些表情似乎不能称作 emoji。真正的 emoji 必须能被编码,而不是一张图片。 Waline 提供了一系列开箱即用的表情预设。你可以直接将它们添加到 emoji 选项中: Alus https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/alus 哔哩哔哩 https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/bilibili QQ https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/qq 贴吧 https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/tieba Twitter Emoji https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/tw-emoji 微博 https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/weibo 本站的配置 例如本站目前的 Waline 部分配置如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # Waline client configuration see: https://waline.js.org/en/reference/client.html waline: serverURL: https://c.imayx.top/ lang: zh-CN visitor: false avatar: emoji: - https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/tieba - https://cdn.jsdelivr.net/gh/walinejs/emojis/qq - https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/alus requiredMeta: - name - email - url placeholder: locale: admin: 博主 B站和微博的表情看多了会让我生理性不适,因此没有添加进本站的客户端中。 评论管理 评论管理 (管理端) 部署完成后,请访问 <serverURL>/ui/register 进行注册。首个注册的人会被设定成管理员。 管理员登陆后,即可看到评论管理界面。在这里可以修改、标记或删除评论。 用户也通过评论框注册账号,登陆后会跳转到自己的档案页。 编辑记录 1 2021-10-19 23:21:00
这个错误让人懵圈的地方就在于它不会给出错误出现的位置,让已经写了几百行的你痛不欲生。 可执行文件被占用了 因此编译器无法覆盖旧的可执行文件,所以编译失败。 这很有可能是你没发现它还没结束运行。 (我目前在用的 IDE:Visual Studio Code) 扩展:C/C++ Compile Run(可以方便地编译单个 cpp 文件,且不会因为路径中存在空格或中文出错。) 解决方案 Dev C++ 等 IDE 直接把弹出的窗口(黑框)关了就行了 VS Code 可以从输出切换到终端选项卡,使用快捷键 Ctrl+C 结束程序(同样适用于 external console )。 实在不行就用任务管理器和 taskkill 吧 主函数不存在(main 拼写错误) 你不太可能不写主函数,但是你很有可能把 main 打成 mian 或者什么其他奇怪的东西。 在编译器眼里,这些可不能算主函数。 解决方案 把 main 拼对。 所调用的函数仅进行了声明 这种情况下新版编译器仍旧会输出 error: ld returned 1 exit status 这一让人迷惑的错误。 但是一般也不会把函数体和声明分开写吧… (函数声明在主函数上方即可,函数体是可以写在 main 函数下方的。) 解决方案 把漏写了的函数体补上。 (旧版编译器)在主函数中定义了函数 新版编译器发现你在 main 函数中定义了其它函数报错并不是error: ld returned 1 exit status, 而是error: a function-definition is not allowed here before '{' token 解决方案 把子函数定义在主函数外面。 (旧版编译器)调用了不存在的函数 一般情况下应该是所需头文件未引入或者函数名键入错误。 并不确定“scanf/printf 键入错误”是不是真的会引起该错误(CSDN 上的一篇博客说的,我也懒得去装个旧版编译器实测),是不是只有 scanf 和 printf 会这样更不得而知… 总之新版编译器即使在 CSDN 博文中所谓的“代码较多的情况”下也不会因为这个原因出现这种错误,只会告诉你这个函数在这个作用域没有被定义过,甚至还会反问你: 你说的是 scanf 吗? (测试用代码是随机跳题后从这里复制的,并未提交评测) 解决方案 检查函数名称的拼写是否正确。 如果想调用库函数但不清楚应该引入什么头文件,可以在搜索引擎上像这样搜索: sqrt() 所在的头文件 C++ sqrt() C语言 sqrt() 或者直接 #include <bits/stdc++.h> 本文的测试环境 1 2 3 4 g++ (MinGW-W64 x86_64-posix-seh, built by Brecht Sanders) 10.3.0 Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 编辑记录 2021-08-22 19:20:00
又摸了一下午整了个这么个东西出来 要得到 A+ 评级: 您的网站必须启用 HSTS 且 max-age 属性不小于 6 个月(即 15768000 秒) 请注意: 启用 HSTS 后所有不支持 HTTPS 的子域名都将无法访问,且在 max-age 属性设置的时间内无法恢复。 要得到 ATS 合规: 您的网站必须支持 TLS v1.2。 要得到 PCI DSS 合规: 您的网站不得支持 TLS v1.0。 关闭 TLS v1.0 支持意味着放弃对一些老旧操作系统和浏览器(Android ≤ 4.3、Internet Explorer ≤ 10、Java ≤ 7u25、Safari ≤5.1.9、OS X ≤ 10.6.8)的兼容性,具体测试情况见下图。 PCI安全标准委员会规定 2018 年 6 月 30 日之后,开启 TLS1.0 将导致 PCI DSS 不合规, 具体参考:《更严格的PCI DSS合规标准》 HSTS 相关配置可以参考 MySSL.com 的 HTTPS安全与兼容性配置指南 测试工具:HTTP Strict Transport Security Header Testing Tool
题面来自洛谷,根据我的个人喜好有小修改 题目背景 根据斯诺登事件出的一道水题 题目描述 2013 年 X 月 X 日,俄罗斯办理了斯诺登的护照,于是他混迹于一架开往委内瑞拉的飞机。但是,这件事情太不周密了,因为 FBI 的间谍早已获悉他的具体位置——但这不是最重要的——最重要的是如果要去委内瑞拉,那么就要经过古巴,而经过古巴的路在美国的掌控之中。 丧心病狂的奥巴马迫降斯诺登的飞机,搜查时却发现,斯诺登杳无踪迹。但是,在据说是斯诺登的座位上,发现了一张纸条。纸条由纯英文构成:Obama is a two five zero.(以 . 结束输出,只有 6 个单词+一个句号,句子开头如没有大写亦为合法)这句话虽然有点无厘头,但是警官陈珺骛发现这是一条极其重要的线索。他在斯诺登截获的一台笔记本中找到了一个 C++ 程序,输入这条句子后立马给出了相对应的密码。陈珺鹜高兴得晕了过去,身为警官的你把字条和程序带上了飞机,准备飞往曼哈顿国际机场,但是在飞机上检查的时候发现——程序被粉碎了!飞机抵达华盛顿只剩5分钟,你必须在这 5 分钟内编写(杜撰)一个程序,免受上司的 10000000000%10 大板。破译密码的步骤如下: (1)找出句子中所有用英文表示的数字($\leq 20$),列举在下: 正规:one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen twenty 非正规:a both another first second third。为避免造成歧义,another 算作 $1$ 处理。 (2)将这些数字平方后对 $100$ 取模,如 $00,05,11,19,86,99$。 (3)把这些两位数按数位排成一行,组成一个新数,如果开头为 $0$,就去 $0$。 (4)找出所有排列方法中最小的一个数,即为密码。 // 数据已经修正 By absi2011 如果还有问题请联系我 输入格式 一个含有 6 个单词的句子。 输出格式 一个整型变量(密码)。如果没有符合要求的数字出现,则输出 0。 输入输出样例 输入 #1 1 Black Obama is two five zero . 输出 #1 1 425 分析 数据咋骂人呢 先一个个输入单词与题目给出的 26 个单词匹配,string 类型可以直接使用逻辑运算符 == 进行判断(C++ 选手谁闲着没事用 char 数组啊); 由于已经知道单词数量是 $6$ 个并不需要用到 while 循环(输入字符串的情况下 cin 的返回值情况我也不清楚) 一些问题 为什么样例输出不是 245 或者 254 ? 25和4组成的最小数不是254吗,为什么样例给的425? Black Obama is two five zero . zero 是不算数的! 因此我们从六个单词中只能提取出两个:two 和 five。 转换成数字就是 $2$ 和 $5$。 然后我们算出它们的平方。 $2^2=4$ $5^5=25$ 对 $100$ 取模后结果是 $04$ 和 $25$,因为题目说 把这些 两位数 按数位排成一行 并且给出了 00,05 这两个例子 有两种排列方法,因为 $0425$ 开头为 $0$,去掉开头的 $0$ 之后就是 $425$,比另一个排列 $2504$ 小 所以这个所有排列方法中最小的一个数是 $425$,而不是 $2504$。 把这些两位数按数位排成一行,组成一个新数 我感觉中间那三个字是多余的…不仅不能帮助理解反而可能误导选手 只能得 20 分? 放一下我下载的测试点#2 的数据(请勿用于打表): 1 You are a three eight pig . 1 10964 我得了 20 分的程序在这个测试点上给出的答案是 1964,也就是忽略了所有 0,但实际上只能忽略开头那个。 如果开头为 0,就去 0。 记得排序。 1 2 3 4 5 if(num[0]) cout<<num[0]; for(int i=1;i<cnt;i++){ if(num[i]>10) cout<<num[i]; else cout<<'0'<<num[i]; } 忘了没有任何单词匹配的情况 可能就我没看清题? 直接输出 0 后结束程序即可。 其实不结束也啥都输出不出来,浪费点时间而已。 1 if(!cnt) cout<<0,exit(0); 冷知识,虽然 return 0; 不能写在逗号后面用于结束程序(无法通过编译),但是 exit(0); 可以 完整代码 仅供学习参考使用 抄袭、复制题解,以达到刷 AC 率/AC 数量或其他目的的行为,在洛谷是严格禁止的。 洛谷非常重视学术诚信。此类行为将会导致您成为作弊者。 具体细则请查看洛谷社区规则。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 #include<bits/stdc++.h> using namespace std; string tmp,dic[27]={"","one","two","three","four","five",//并不会出现zero "six","seven","eight","nine","ten",//但是这里我为了前20个数下标对应数值把0空着 "eleven","twelve","thirteen","fourteen","fifteen", "sixteen","seventeen","eighteen","nineteen","twenty", "a","both","another","first","second","third"}; int num[6],cnt; int main(){ for(int i=0;i<6;i++){ cin>>tmp; if(!i&&tmp[0]>='A'&&tmp[0]<='Z') tmp[0]+='a'-'A'; for(int j=1;j<=26;j++){ if(tmp==dic[j]){ if(j<=20){ //在下标1-20匹配即对应1-20 num[cnt++]=j; break; } else { switch(j){ case 21: case 23: case 24: //21、23、24对应1 num[cnt++]=1;break; case 22: case 25: //22、25对应2 num[cnt++]=2;break; case 26: //26对应3 num[cnt++]=3;break; } break;//switch 语句内的 break 仅能跳出 switch 而对外面的循环没有影响, //因此必须在跳出 switch 后再 break 一次以确保跳出循环(其实继续遍历应该 //也没事,不会成功匹配只是浪费点时间) } } } } if(!cnt) cout<<0,exit(0);//冷知识,虽然 return 0 不能写在逗号后面用于结束程序但是 // exit(0) 可以 for(int i=0;i<cnt;i++){ num[i]=num[i]*num[i]; num[i]%=100; } sort(num,num+cnt); if(num[0]) cout<<num[0]; for(int i=1;i<cnt;i++){ if(num[i]>10){ cout<<num[i]; } else { cout<<'0'<<num[i]; } } } 编辑记录 修复了最后一个解释不通的地方 2023-10-28 11:37:00 修复数学公式渲染 2021-08-06 18:39:00 暂时移除的段落: 我得了 20 分(过了测试点#1)之后重读题面的理解是把数字的每一位拆分排序,而这个帖子的楼主的想法则是 25 和 4 的两种组合 425 和 254 中 254 更小。
啥?装了 Stack 拷了 exampleSites 以后不能正常 hugo -D了? 试试以下两项操作。 删除根目录下的 config.toml Issus #105 @ CaiJimmy/hugo-theme-stack 生成 examplesite/content/post/rich-content/index.md 时报错 是因为是示例文章有请求 Twitter API 的 Shortcode ,需要 珂学上网 。 我的解决方式是直接把 YouTube 、 Twitter 和 Vimeo 的 ShortCode 都删了,反正以后也用不到(当然你也可以直接把这篇 rich-content 给整个删了) Issus #191 @ CaiJimmy/hugo-theme-stack 另外,Bilibili 的 ShortCode 格式如下: (去掉两个反斜杠) \{\{< bilibili BV1Zx411h7ue >}} 别一天到晚建博客了,赶紧写吧。
我的博客的站内搜索已经搭载了这款 微内核万物互联分布式软总线形式化验证 搜索引擎,大家可以在侧边栏点击搜索抢先体验一下! 相信这将是与 花瓣搜索 一样的优秀国产项目!让我们在一起拒绝卡脖子!星星之火可以燎原!
你好,Hugo! Bilibili Short Code Test {{< bilibili BV1Zx411h7ue >}}
题目描述: 时间:1s 空间:32M 公司派你去和几位客户面谈,以了解他们对公司产品的意见。你逐个打电话与客户联系,得知他们一般都很忙,不过他们还是可以为你抽出一点时间。现在的问题是有些客户的时间有冲突,你无法在一天内联系所有客户。所以你需要一个程序来帮助你安排第一天的工作,使得你能尽可能地和更多的客户进行联系。注意,客户不愿意你打乱他们的计划。如果你和某个客户约定见面,必须按时到达并且充分利用这段时间和他交谈,这样才不至于让他产生不满。你可以假设从一个客户处到另一个客户处的时间短得忽略不计。 输入格式: 输入包括了多个测试数据,每个测试数据开头是一个整数 $n(1 \le n \le 10000)$,表示客户总数。接下来n行每行包括两个正整数 $s$、$t$,分别表示该客户的空闲时间段的起始时间和终止时间。$s<t$ 输出格式: 对于每个测试数据,在单独一行内输出你所能接触到的最多客户数。 样例输入: 1 2 3 4 3 1 15 2 19 15 17 样例输出: 2 约定: (无) 提示: (无) 代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 /* Name: 7、客户调查 Copyright: Aynxul03 Author: Aynxul03 Date: 2021-07-13 Description: 时间:1s 空间:32M 题目描述: 公司派你去和几位客户面谈,以了解他们对公司产品的意见。你逐个打电话与客户联系, 得知他们一般都很忙,不过他们还是可以为你抽出一点时间。现在的问题是有些客户的 时间有冲突,你无法在一天内联系所有客户。所以你需要一个程序来帮助你安排第一天 的工作,使得你能尽可能地和更多的客户进行联系。注意,客户不愿意你打乱他们的计 划。如果你和某个客户约定见面,必须按时到达并且充分利用这段时间和他交谈,这样 才不至于让他产生不满。你可以假设从一个客户处到另一个客户处的时间短得忽略不计。 输入格式: 输入包括了多个测试数据,每个测试数据开头是一个整数n(1<=n<=10000),表示客户总数。 接下来n行每行包括两个正整数s、t,分别表示该客户的空闲时间段的起始时间和终止时间。s<t 输出格式: 对于每个测试数据,在单独一行内输出你所能接触到的最多客户数。 */ #include<bits/stdc++.h> using namespace std; int n,lt,ans; struct sb{ int start,end; }client[1001]; bool cmp(sb a,sb b){return a.end<b.end;}//按结束时间升序 int main(){ ios::sync_with_stdio(0); cin>>n; for(int i=0;i<n;i++) cin>>client[i].start>>client[i].end; sort(client,client+n,cmp); //排序 for(int i=0;i<n;i++) if(client[i].start>=lt) ans++,lt=client[i].end; cout<<ans; return 0; }
(题面来自洛谷) 题目描述 yyy 的学校要求早上 8 点前到达。学校到 yyy 的家一共有 $s$($s\le 10000$) 米,而 yyy 可以以 $v$($v<10000$) 米每分钟的速度匀速走到学校。此外在上学路上它还要额外花 10 分钟时间进行垃圾分类。请问为了避免迟到 yyy 最晚什么时候出门?输出 HH:MM 的时间格式,不足两位时补零。由于路途遥远, yyy 可能不得不提前一天出发,不过不可能提前超过一天。 输入格式 两个正整数 s,v,意思已经在题目中给定。 输出格式 hh:mm 表示最晚离开家的时间(时:分,必须输出两位,不足两位前面补0) 输入输出样例 输入 #1 100 99 输出 #1 07:48 分析 小学的匀速直线运动问题,t=s/v 但是有几个小细节 不要忘了加上10分钟 怎么输出 HH:MM 的格式?试了一下像保留小数点一样使用 C 的标准输入输出(Xchkoo 口中所说的“那套老掉牙的 cstdio”)的占位符,居然啪一下就行了 怎么处理时分进位?60 进制,因为不知道进几次所以用 while 循环实现就行了 s/v 有小数点怎么办?不能四舍五入,只能向上取整,因为迟到 $0.000000000001$ 分钟也是迟到。 5.千米迢迢上学的 yyy 问题:八个小时都到不了学校怎么办?当 $h$ 自减变为 $-1$ 的时候将 $h$ 赋值为 $23$ 即可,由于不可能提前超过一天出发(某学生连续赶路 $30$ 余小时猝死)所以 if 即可 h 及 m 的计算问题:我的做法是赋初值 08:00 然后往回倒减分钟数,然后进位到小时位 代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include<bits/stdc++.h> using namespace std; int main() { int s,v; cin>>s>>v; int t=ceil(1.0*s/v); int h=8,m=-t-10; while(m<=0) { m+=60; h--; if(h<0) h=23; } printf("%.2d:%.2d",h,m); return 0; } 编辑记录 2021-08-06 18:11:00
(题面来自洛谷) 题目描述 国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续 $n$ 天每天收到 $n$ 枚金币后,骑士会在之后的连续 $n+1$ 天里,每天收到 $n+1$ 枚金币。 请计算在前 $k$ 天里,骑士一共获得了多少金币。 输入格式 一个正整数 $k$ ,表示发放金币的天数。 输出格式 一个正整数,即骑士收到的金币数。 输入输出样例 输入 #1 1 6 输出 #1 1 14 输入 #2 1 1000 输出 #2 1 29820 说明/提示 【输入输出样例 1 说明】 骑士第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。因此一共收到 $1+2+2+3+3+3=14$ 枚金币。 对于 $100%$ 的数据,$1\le k\le 10^4$ 分析 代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include<bits/stdc++.h> using namespace std; int main() { int k, //发放金币的天数 coin = 0, //骑士收到的金币数 per = 1, //每天发给骑士的金币数 remain = 1; //按此数量发放的剩余天数 cin>>k; for(int i=1;i<=k;i++) { coin+=per; //发放金币 if(--remain==0) remain=++per; //之后的 per+1 天每天发放 per+1 枚金币 } cout<<coin; return 0; } 编辑记录 突然发现之前放的代码压根没法通过编译… 2023-10-28 11:49:00 2021-08-06 18:10:00
这题太有意思了,发个题解纪念一下 题面来自洛谷 $\LaTeX$ 渲染不了,哭了(明明后台预览是可以渲染的啊= (搬到 Hugo 博客可以正常显示了) 题目描述 给定 $n(n \le 10000)$ 和 $k(k \le 100)$,将从 $1$ 到 $n$ 之间的所有正整数可以分为两类:$A$ 类数可以被 $k$ 整除(也就是说是 $k$ 的倍数),而 $B$ 类数不能。请输出这两类数的平均数,精确到小数点后 $1$ 位,用空格隔开。 数据保证两类数的个数都不会是 $0$。 输入格式 无 输出格式 无 输入输出样例 输入 #1 1 100 16 输出 #1 1 56.0 50.1 分析 利用了等差数列等高阶数学知识来减少循环次数。 代码(C++) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include<bits/stdc++.h> using namespace std; int main(){ int n,k,can,cant,all,num=0; cin>>n>>k; all=(n+1)*n/2; for(int i=k;i<=n;i+=k){ can+=i; num++; } cant=all-can; double a = (double)can/num; double a_ = (double)cant/(n-num); printf("%.1lf %.1lf",a,a_); return 0; } 编辑记录 2021-08-13 12:01:00
如你所见,我的博客现在使用 Hugo,因此该修改版主题不太可能发布更新。 此主题并非我的原创作品,原作者为 Wider Gao 而且改得很烂,主页的文章展示都搞炸了(点击查看demo),不建议使用(但个人感觉也不是特别糟糕) 我的改动 我作出了如下改动: 把原作者使用的js源(bootcss.com)替换为 bootcdn.net,提升加载速度(至少在我所在的地区可以) 把原作者在博客主题更新了一文中提供的 my.css 替换为从他的页面上扒下来的css(因为这个只有几十行的 my.css 根本没法用=我也不知道为什么,从页面上直接扒也是该文评论区提供的方法) 下载链接 文件均发布在 Pastebin.com 以及 Ubuntu Pastebin 上 如需获取原版,请移步Wider Gao的博文 页面定制 CSS 代码 Pastebin.com 复制 下载 Ubuntu Pastebin 博客侧边栏公告 Pastebin.com 复制 下载 Ubuntu Pastebin 页首 HTML 代码 只有一行,就直接放这了 <link href="https://cdn.bootcdn.net/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> 页脚 HTML 代码 Pastebin.com 复制 下载 Ubuntu Pastebin 使用 先修改一下这些代码(把各种图片链接替换一下) 建议先粘贴到编辑器里操作(搬迁备注:现在博客园后台终于有能看的编辑器而不是光秃秃的HTML原汁原味文本框了,我青结) 背景图 替换 https://cdn.luogu.com.cn/upload/image_hosting/utntnuud.png 题外话:洛谷图床会屏蔽站外链接 :( 但是登陆了上传图片的洛谷账号就能加载 这就是为什么之前syr看不到我博客园的头图而我能看到 头像 替换 https://pic.cnblogs.com/avatar/2228888/20201128101240.png 在博客园后台打开设置,将博客皮肤改为 Custom ,并勾选 禁用模板默认CSS ,然后将这些代码粘贴到框里,保存。 实现正常显示需要申请两个(次)权限,一次HTML的,一次JS的。(申请HTML权限通过了才能申请JS权限) 声明 本主题并非本人制作,如果这侵犯了您的权利,请发邮件和我取得联系,我将第一时间作出回应。 修改记录 2021-08-06 17:37:00
我的解决方法 以 管理员身份 运行一个编辑器 打开 C:\Program Files\nodejs\node_modules\npm\npmrc 如果你安装Node.js时修改了安装路径那么就不是这个路径了 如果这个文件不存在就自己新建一个文本文档并去掉扩展名 .txt 修改 C:\Program Files\nodejs\node_modules\npm\.npmrc 没有用 填入以下内容并保存 1 2 3 proxy = null registry = https://registry.npm.taobao.org disturl = https://npm.taobao.org/dist 然后再重新尝试安装Hexo(npm install hexo-cli -g)即可。 如果依旧无法解决可以尝试在以管理员身份启动的命令提示符或 Powershell 中执行此命令 1 npm config set disturl https://npm.taobao.org/dist 文章迁移备注 从博客园搬文章的时候无意发现本文已被以下站点转载: qdmana.com yunjuu.com 我并未授权这些网站转载我的文章。 虽然这篇博客没有花我很多时间,但是这些网站的行为让我感到十分不满。 编辑记录 2021-08-05 13:20:00
题面链接 HDU 2063 Vjudge 题意概述 求一个二分图最大匹配的边数 题目标签 匈牙利算法模板题 参考代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #include <bits/stdc++.h> using namespace std; #define maxn 1000 + 10 int n, m, k, head[maxn], link[maxn], cnt, tot; bool vis[maxn]; struct Edge { int to, nxt; }edge[maxn]; void add(int u, int v) { edge[cnt].to = v; edge[cnt].nxt = head[u]; head[u] = cnt; cnt++; } bool dfs(int u) //深搜判断对于点集v2中的一个点u是否能与点集v1中的一个点v匹配 { for(int i = head[u]; i != -1; i = edge[i].nxt){ //枚举能匹配的点 int v = edge[i].to; //v为能与u匹配的点编号 if(vis[v]) continue; //利用一个vis判断当前点是否尝试匹配过,如果已经匹配过就跳过以防死循环 vis[v] = true; if(link[v] == -1 || dfs(link[v])){ //如果v可以腾出位置(即没有与v2中的任何一个点匹配或v2中还存在没有匹配过的点可以与之匹配) link[v] = u; //u与v成功匹配 return true; } } return false; } int getcp(int n){ int ans = 0; memset(link, -1, sizeof(link)); for(int i = 1; i <= n; i++){ //遍历每个点集v2中的点 memset(vis, false, sizeof(vis)); if(dfs(i)) ans++; } return ans; } int main(){ while(scanf("%d", &k) != EOF){ if(!k) break; scanf("%d%d", &m, &n); memset(head, -1, sizeof(head)); cnt = 0; for(int i = 1; i <= k; i++){ int u, v; scanf("%d%d", &u, &v); v += m; //把点集v1中的点的编号调整到点集v2后面 add(u, v); } printf("%d\n", getcp(m)); } return 0; } 参考博文 想理解匈牙利算法的概念,推荐阅读趣写算法系列之–匈牙利算法(推荐在教练的陪同下阅读) 评论区有朋友通俗易懂地概括了它的思想:先到先得 能让就让 hdu 2063 过山车 (匈牙利算法模板题) – 111qqz的小窝 编辑记录 2021-08-05 13:37:00
OpenJudge - 01:A+B问题 信息学奥赛一本通(C++版)在线评测系统 如果非要做这题我推荐第一个 OJ,第二个 OJ 的界面实在惨不忍睹 (虽然第一个题目有题号检索比较方便而且貌似用户比较多) 更好的选择是不要做《信奥赛一本通》的题 题目的背景、描述、输入输出格式样例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1000:入门测试题目 时间限制: 1000 ms 内存限制: 32768 KB 【题目描述】 求两个整数的和。 【输入】 一行,两个用空格隔开的整数。 【输出】 两个整数的和。 【输入样例】 1 2 【输出样例】 3 题意分析与算法设计 新手不用理会 时间限制 和 内存限制,一般来说学到后面才会出现 TLE(Time Limit Exceed,超出时间限制)和 MLE(Memory Limit Exceed,超出内存限制)的情况。 (关于这些术语,可以在这里了解。) 至于这个问题,就是一个最简单的 A+B 问题。 参考用完整代码 各位一定要养成良好的代码风格,因为代码不仅仅是给机器看的,有时候人也要看。 使用 cin/cout(需要调用 iostreeam 头文件): 1 2 3 4 5 6 7 #include <iostream> using namespace std; int main() { int a, b; cin >> a >> b; cout << a + b << endl; } 使用 scanf/printf(需要调用 cstdio 头文件): 1 2 3 4 5 6 7 #include <cstdio> using namespace std; int main() { int a, b; scanf("%d%d", &a, &b); printf("%d", a + b); } 这两种风格的输入输出各有长处,各位务必都要掌握。 实际上,第二份代码中没有用到任何 C++ 特性,因此不加 using namespace std; 也没关系。 为什么这种题你还要水一篇题解出来 编辑记录 2021-08-06 18:42:00 UTC+8 最后更新于 OCT 19, 2021 21:57 UTC+8
(题面来自洛谷) 题目描述 我国历史上有个著名的故事: 那是在2300年以前。齐国的大将军田忌喜欢赛马。他经常和齐王赛马。他和齐王都有三匹马:常规马,上级马,超级马。一共赛三局,每局的胜者可以从负者这里取得200银币。每匹马只能用一次。齐王的马好,同等级的马,齐王的总是比田忌的要好一点。于是每次和齐王赛马,田忌总会输600银币。 田忌很沮丧,直到他遇到了著名的军师――孙膑。田忌采用了孙膑的计策之后,三场比赛下来,轻松而优雅地赢了齐王200银币。这实在是个很简单的计策。由于齐王总是先出最好的马,再出次好的,所以田忌用常规马对齐王的超级马,用自己的超级马对齐王的上级马,用自己的上级马对齐王的常规马,以两胜一负的战绩赢得200银币。实在很简单。 如果不止三匹马怎么办?这个问题很显然可以转化成一个二分图最佳匹配的问题。把田忌的马放左边,把齐王的马放右边。田忌的马A和齐王的B之间,如果田忌的马胜,则连一条权为200的边;如果平局,则连一条权为0的边;如果输,则连一条权为-200的边……如果你不会求最佳匹配,用最小费用最大流也可以啊。 然而,赛马问题是一种特殊的二分图最佳匹配的问题,上面的算法过于先进了,简直是杀鸡用牛刀。现在,就请你设计一个简单的算法解决这个问题。 输入格式 第一行一个整数n,表示他们各有几匹马(两人拥有的马的数目相同)。第二行n个整数,每个整数都代表田忌的某匹马的速度值(0 <= 速度值<= 100)。第三行n个整数,描述齐王的马的速度值。两马相遇,根据速度值的大小就可以知道哪匹马会胜出。如果速度值相同,则和局,谁也不拿钱。 【数据规模】 对于20%的数据,1<=N<=65; 对于40%的数据,1<=N<=250; 对于100%的数据,1<=N<=2000。 输出格式 仅一行,一个整数,表示田忌最大能得到多少银币。 输入输出样例 输入 #1 1 2 3 3 92 83 71 95 87 74 输出 #1 1 200 分析 都在代码注释里了 代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 // Problem: P1650 田忌赛马 // Contest: Luogu // URL: https://www.luogu.com.cn/problem/P1650 // Memory Limit: 125 MB // Time Limit: 1000 ms // // Powered by CP Editor (https://cpeditor.org) #include<bits/stdc++.h> using namespace std; int n, a[2001], //田忌的马 b[2001], //齐王的马 m1, m2, qian; int main(){ scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]); for(int i=0;i<n;i++) scanf("%d",&b[i]); sort(a,a+n); sort(b,b+n); int n1=n-1, n2=n-1; while(m1<=n1){ if(a[n1]>b[n2]){ //田忌最快的比齐王最快的快 qian+=200; //赢钱 n1--,n2--; //两边各去掉一匹马 }else if(a[n1]<b[n2]){//田忌最快的赢不了齐王最快的,就丢一匹最慢的 qian-=200; //输钱 m1++,n2--; }else{ //如果 势 均 力 敌 的话 if(a[m1]>b[m2]){ //田忌最慢的能赢齐王最慢的,就上 qian+=200; //赢钱 m1++,m2++; }else{ //赢不了就用最慢的消耗齐王最快的 if(a[m1]<b[n2]) qian-=200; //我 再 忍 你 一 手 m1++,n2--; } } } printf("%d",qian); return 0; } 修改记录 2021-02-19 19:20 发布于博客园 2021-08-06 17:57 迁移自博客园 搬文章的时候瞎画的封面图还是决定不摆上去了…
正经解释 简称 全称 中文称谓 补充说明 & 修改建议 OJ Online Judge 在线判题系统 可以对你的程序进行评测并给出结果。洛谷、SPOJ、Codeforces、Vijos、UVa OJ 都是在线判题系统 AC Accepted 通过 嘲讽你还没过的同学 想想在时间和空间上能否做到更优,或是继续做其他题目 WA Wrong Answer 答案错误 你的程序在规定的时间和内存限制内里输出了错误的答案,因此没有得分(想一想,有没有没有考虑到的特殊情况?如果你的程序根本无法对样例输入输出正确的答案,那么你的思路很可能有问题) TLE Time Limit Exceed 超出时间限制 你的程序在该测试点上超出了题目给定的时间仍未结束运行,因此被强行中止(检查是否存在死循环或过多的循环,使用时间复杂度更优的算法,进行一些常数及输入输出优化,剪枝)如果你的程序能正常给出答案,记得使用循环控制语句 break 或 return 0、exit(0) 这样的语句结束程序;在一些评测系统老旧的 OJ 中,没有读入完输入的数据也会造成 TLE,但是在洛谷不会发生。 OLE Output Limit Exceed 超出输出限制 你的程序在这个测试点中输出的字符数量超出了限制,因此被系统强行中止(检查是否存在死循环和没有注释掉的调试用输出语句) MLE Memory Limit Exceed 超出内存限制 你的程序在运行过程中占用了过多的内存,因此被系统强行中止(检查是否在程序中使用了过大的数组或是往 STL 容器中存入了过多的数据) RE Runtime Error 运行时出错 检查是否存在数组越界访问(尤其是C(++)语言选手)。另外,如果你在 main 函数中返回一个非 0 的值也会被系统认为程序异常退出 PE Presentation Error 格式错误 检查输出的空格/换行符数量是否与题面中的要求严格一致 CE Compile Error 编译错误 你的程序根本无法通过编译,也就没有可执行文件可以用来评测(检查语法,初学者建议着重检查分号和全角标点,建议敲代码时禁用中文输入法) UKE Unknown Error 未知错误 评测姬也不知道出了什么问题(联系 OJ 管理员或出题人,稍后再尝试重新提交) 哈哈太搞笑了 简写 全称 中文称谓 AC Answer Cubi 粗鄙的答案 WA Wonderful Answer 优美的答案 TLE Time Limit Enough 时间充裕 OLE Output Limit Enough 输出足够 MLE Memory Limit Enough 内存充裕 RE Runtime Excellent 运行时(过于) 优秀 PE Pretty Excellent 十分优秀 CE Compile Easily 轻松通过编译 UKE Unbelievable Keeping Excellent 难以置信的保持优秀 AC=Answer Cubi 粗鄙的答案 WA=Wonderful Answer 优美的答案 TLE=Time Limit Enough 时间充裕 OLE=Output Limit Enough 输出足够 MLE=Memory Limit Enough 内存充裕 RE=Runtime Excellent 运行时(过于)优秀 PE=Pretty Excellent 十分优秀 CE=Compile Easily 轻松通过编译 UKE=Unbelievable Keeping Excellent 难以置信的保持优秀 出现AC时你需要将你的答案变得更优美才能通过; 而TLE、OLE、MLE、ER经常同时出现,可以给予你少量的额外分数; PE、CE都能给予你大量的额外分数; UKE这个标签非常稀有,可以让你直接通过这次比赛并名列前茅。
欢迎来到新版友链页面!回到旧版以查看更多链接 欢迎申请友链,把你的站点名称、简介(不要太长)、地址和图片发在下方评论区或我的邮箱(LinkApply@ImAyx.top)即可。当然,通过 IM 联系我也是可以的(