想了解InternationalSEO:多语言多区域网站SEO的快速入门指南的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于多语言网站主站有哪些的相关问题,此外,我们还将为您介绍关于.NET
想了解International SEO:多语言多区域网站SEO的快速入门指南的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于多语言网站主站有哪些的相关问题,此外,我们还将为您介绍关于.NET Framework 在全球化(globalization)功能上新的类库:Microsoft Visual Studio International Pack 1.0 版 Beta1、2023年最受欢迎的WordPress SEO 插件——All in One SEO Pack、2023年流行的 WordPress SEO 插件——Yoast SEO、ACM International Collegiate Programming Contest, Damascus University Collegiate Programming Cont...的新知识。
本文目录一览:- International SEO:多语言多区域网站SEO的快速入门指南(多语言网站主站有哪些)
- .NET Framework 在全球化(globalization)功能上新的类库:Microsoft Visual Studio International Pack 1.0 版 Beta1
- 2023年最受欢迎的WordPress SEO 插件——All in One SEO Pack
- 2023年流行的 WordPress SEO 插件——Yoast SEO
- ACM International Collegiate Programming Contest, Damascus University Collegiate Programming Cont...
International SEO:多语言多区域网站SEO的快速入门指南(多语言网站主站有哪些)
随着经济全球化的不断发展,我们的用户受众不再仅仅是当地国家,多语言多区域的网站、平台越来越多。如果您有一个或多个以多种语言面向国际或不同国家、区域提供不同内容的门户网站,那您需要尽最大的努力扩大您的国际受众范围,确保网站在全球范围内被注意到。这时,您就需要国际SEO了。
1. 什么是国际SEO ?
首先,我来普及一下概念,
- 国际SEO, International SEO (国际搜索引擎优化),是优化您的网站的过程,以便搜索引擎可以轻松识别您要定位的国家、地区以及用于业务的语言。
- 多语言网站,是指使用多种语言提供内容的网站。例如,香港的企业向用户提供繁体中文和英文的网站。
- 多区域网站,是指以不同国家、区域的用户为目标受众的网站。例如,某厂商,同时会向美国、加拿大、中国等多个国家发货商品。
如下图,搜索引擎向不同地理区域的用户展示不同的语言、币种、计量单位的结果。搜索引擎会尝试向搜索用户提供与用户的语言、区域最匹配最恰当的网页版本,那么,我们如何告知用户和搜索引擎哪些才是最匹配的网页呢?
图片来源于网络
2. 国际站点的URL结构
首先,先介绍多语言多区域国际站点一般的URL结构,国际站点一般有4中方式来向用户和搜索引擎指明当前页面所对应的国家、区域和语言。分别是ccTLD、子域名、子目录、具有语言、区域参数的gTLD 。
- ccTLD(国家顶级域 Country code top-level domain)
ccTLD ,根据Google的定义,ccTLD使用双字母代码向用户和搜索引擎指明网站所在的国家、地区。
优点:
地理位置定位明确(作用减弱)
在目标用户的搜索结果页面中排名更高
与服务器位置无关
便于区分网站
如果您拥有财务和技术资源,使用ccTLD可能是个好主意。
缺点:
您需要付出更多努力才能获得普及新域名,一起得从头开始。
价格昂贵(并且可能存在使用限制,如需要备案、需要在本国存放服务器)
需有更多基础架构
全新网站,搜索引擎不会将页面权重从您的原始域名转移到此域名,网页需要重新索引。
提示:Google搜索将不再使用域名来指示国家/地区服务。Making search results more local and relevant
eg: domain.cn - gTLD的子域名(gTLD,通用顶级域 Generic top-level domain)
优点:
允许使用不同的服务器位置
便于区分网站
缺点:
全新网站,不能继承主域权重
本地化的优化过程更加复杂
eg: cn.domain.com - gTLD的子目录 — 国际化内容放置在根域下的特定子目录或文件夹中。
优点:
维护成本用低
易于设置
见效快,更容易获得搜索引擎的新人,直接使用原网站权重,很快被索引
这是资源有限的企业的最佳选择。
缺点:
提供弱的地理定位信号
没有针对不同子目录的特定IP地址
更难维护不同版本的国家/地区目录
搜索引擎的处罚会影响到所有目录
eg: domain.com/cn
- URL参数 (不推荐)
缺点:
参数不可靠,有时它们会被编入索引,有时则不会。搜索引擎更喜欢唯一的URL
eg: domain.com/?lang=zh-cn
最好的国际站点的URL结构是什么,没有标准答案。只能说,每种方法都有一些优点和缺点,适合自己的就是最好的。
3. 如何处理多语言多区域网站中的重复网页
我们为多个国家提供同一种语言的内容,会造成重复页面而受到惩罚吗?答案是否定的。根据区域定位的本地化内容不是垃圾内容,有着正当的商业理由。
- 如果您在同一个多区域网站的不同网址以同一种语言提供类似内容或重复内容(例如,如果 example.de/ 和 example.com/de/ 都显示类似的德语内容),则应使用 rel=canonical 设定一个权威版本。
- 使用hreflang标签。
- 本地化关键字优化。
- 添加本地信息,例如电话,货币,计量单位和地址等。
- 本地化的HTML站点地图。
- 本地化导航。
- 与观众产生共鸣的本地化图像。
- 专业的翻译、本地化的内容,而不是机器翻译。
- 从本地ccTLD获取指向您本地化内容的外部链接。
4. 使用语言标记确定您的网页所针对的语言
国际SEO最大的问题之一就是重复页面,解决此问题的最有效方法是使用 hreflang。这使得搜索引擎能够识别出应向特定用户展示的最匹配的网页版本。
例如,您有一个英文网页面向多个国家,英国的搜索用户将搜索到对应 hreflang="en-gb"
的网页,而美国的搜索用户将搜索到对应 hreflang="en-us"
的网页。
(1)使用hreflang帮助搜索引擎识别网页版本
将 <link rel="alternate" hreflang="lang_code"... />
元素添加到网页标头中,以将网页的所有语言和区域变体告知搜索引擎。如果您没有站点地图或无法为您的网站指定 HTTP 响应标头,此方法非常有用。
您应在 <head>
元素中为网页的每个变体分别添加一组 <link>
元素(由每个网页变体(包括网页自身)的链接组成)。网页的每个版本所对应的那组链接都应是相同的。
以下是每个 link
元素的语法:<link rel="alternate" hreflang="lang_code" href="url_of_page" />
lang_code
此网页版本所定位的受支持的语言/区域代码,或 x-default
(以与该网页上的 hreflang
标记未明确列出的任何语言匹配)。url_of_page
此网页版本的完全限定网址(与指定的语言/区域对应)。
示例:
<head>
<title>Widgets, Inc</title>
<link rel="alternate" hreflang="en-gb"
href="http://en-gb.example.com/page.html" />
<link rel="alternate" hreflang="en-us"
href="http://en-us.example.com/page.html" />
<link rel="alternate" hreflang="en"
href="http://en.example.com/page.html" />
<link rel="alternate" hreflang="de"
href="http://de.example.com/page.html" />
<link rel="alternate" hreflang="x-default"
href="http://www.example.com/" />
</head>
使用hreflang中的常见错误:
- 只有地区,没有语言
- 地区在前,语言在后
- 使用了多个x-default
- 代码错误,如英国地区应该是GB ,而不是UK
(2)HTTP 响应标头
您可以将相应网页所有语言、区域的变体告知搜索引擎,这种方法对不能设置 html 标记的 pdf 很有用。
标头格式如下:
Link: <http://en-gb.example.com/page.html>; rel="alternate"; hreflang="en-gb", <http://en-us.example.com/page.html>; rel="alternate"; hreflang="en-us", ...
(3)XML sitemap 站点地图
您可以使用站点地图将每个网址的所有语言和区域变体告知搜索引擎。为此,请添加一个用于指定单个网址的 <loc>
元素,其中的子 <xhtml:link>
条目应列出相应网页的每种语言/语言区域变体(包括网页自身)。因此,如果您的某个网页有 3 个版本,那么您的站点地图便应包含 3 个条目,每个条目都应包含 3 个完全相同的子条目。
站点地图规则:
- 按如下方式指定 xhtml 命名空间:
xmlns:xhtml="http://www.w3.org/1999/xhtml"
- 为每个网址分别创建一个单独的
<url>
元素。 - 每个
<url>
元素都必须包含一个指示网页网址的 <loc> 子元素。 - 每个
<url>
元素都必须包含一个子元素<xhtml:link rel="alternate" hreflang="supported_language-code">
,其中应列出相应网页的每个备用版本(包括网页自身)。这些子<xhtml:link>
元素的顺序无关紧要。
示例:
- www.example.com/en,以英语用户为目标用户。
- www.example.com/de,以德语用户为目标用户。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>http://www.example.com/en</loc>
<xhtml:link
rel="alternate"
hreflang="de"
href="http://www.example.com/de" />
<xhtml:link
rel="alternate"
hreflang="en"
href="http://www.example.com/en" />
</url>
<url>
<loc>http://www.example.com/de</loc>
<xhtml:link
rel="alternate"
hreflang="de"
href="http://www.example.com/de" />
<xhtml:link
rel="alternate"
hreflang="en"
href="http://www.example.com/en" />
</url>
</urlset>
更多 sitemap 的相关知识请参考: sitemaps.org - Sitemaps XML format
(4)语言元标记
虽然Google和Yandex目前使用hreflang属性,但Bing使用的是语言元标记 :<meta http-equiv=“content-language” content =“en-us” />
(5)注意事项:
-
hreflang 属性的值用于标识备用网址的语言(以ISO 639-1格式表示)和区域(可选,以ISO 3166-1 alpha-2格式表示)。例如:
- de:德语内容,不限区域
- en-GB:英语内容,面向英国境内的用户
- de-ES:德语内容,面向西班牙境内的用户
- 请考虑为不匹配的语言添加后备网页,尤其是在语言/国家/地区选择器中或是在会自动重定向的主页上。在这种情况下,请使用 x-default 值:
<link rel="alternate" href="http://example.com/" hreflang="x-default" />
- 备用网址必须是完全限定的网址,包含传输协议、域名。
- 备用网址无需位于同一个网域中。
- 如果两个网页没有互指,系统将会忽略相关标记。
- 使用页面标记或XML sitemap,最好不要同时使用两者。
- Google开始根据搜索者的位置生成搜索结果,无论搜索者使用的是哪个Google本地版本。
-
第三方工具推荐:
- 页面标签生成器:http://www.internationalseoma...
- Hreflang验证器:
http://flang.dejanseo.com.au/
http://hreflang.ninja /
http://www.screamingfrog.co.uk
https://www.deepcrawl.com/ - XML站点地图生成器:
http://www.themediaflow.com/t...
https://www.xml-sitemaps.com
5. 使用 rel="canonical" 标记
- 使用 rel="canonical" link 元素标记所有重复的网页。将属性为 rel="canonical" 的
<link>
元素添加到重复网页的<head>
部分中,并使其指向权威网页,如下所示:<link rel="canonical" href="https://example.com/cn/" />
- 如果权威网页有对应的移动版变体,请为其添加 rel="alternate" 链接,并使其指向此网页的移动版:
<link rel="alternate" media="only screen and (max-width: 640px)" href="http://m.example.com/cn/”>
- 为此网页添加适当的 hreflang 或其他重定向。
6. 需要专业的翻译、本土化的内容
因为非常多时候由于搜索词的文化差异,一些语言的热门关键词在另一种语言的搜索引擎中是没有排名的。所以如果从你自己本身的语言文化出发,你可能会错过很多将人们吸引到你网站上的神奇关键词。
例如,
颜色,在英国是 colour ,而美式英语则是 color 。
服务器,在香港叫伺服器;程序叫程式。
如果你将“市场研究”从中文翻译成英文,最直接的翻译是“market study”。但是翻译成“case study“、 “market research” 您会得到更好的效果。
使用这些更亲近本土搜素引擎的关键词不仅意味着你的内容将更具流动性,同时也意味着你的内容比那些使用机器直译关键词的内容更容易被搜索到,概率提高了50多倍。
market research, case study, market study - Google 趋势
7. 外链
我们有必要在与本网站相关的同语言网站、本地ccTLD网站中投放一些导向自身网站的外部链接。这是因为相较于不同语言的链接,搜索引擎会给予同一种语言的链接更高的权重。
8. 适合当地市场的设计
设计、用户体验、网站架构 — 所有这些在SEO中扮演着越来越重要的角色。通过本地化设计,您可以减少重复内容。
不同国家的文化差异不仅影响你网站的内容或关键字,甚至可能影响整个网站。
不同国家,越来越多的人都在使用移动设备来浏览网站,特别是在美国、日本、韩国这些高度移动化的国家,你有必要为网站做一个响应式设计。
不同文化的人们对于颜色的认识尽管有相似点,但他们对各种颜色的感觉会不同,甚至截然相反,其原因是由于国家所处的地理位置、历史文化背景和风俗习惯不同。例如:绿色在中国象征着新生与希望,而西方文化的人们会将绿色与“缺乏经验”联系起来;在中国象征着高贵与权力的黄色,在巴西被视为绝望的象征;因此在为海外市场挑选官方用色时,你最好考虑当地人对颜色的感受。
9. 国际SEO中的常见误区
- 使用 cookie 存储区域、语言
一些网站将语言、区域信息存在在cookie ,根据cookie来向用户展示对应的页面版本。而搜索引擎在抓取页面时并不支持cookie ,除了默认版本外,它什么都看不到。同时,也创建了一个不太好的用户体验。例如,我访问到一个中文页面,通过email向朋友转发。朋友打开的时候,因为他的浏览器中没有设置中文的cookie ,页面被重定向到了一个默认的英文页面,他看到的并非我预期的结果。甚至,他若不认识英文,那他永远无法找到这个中文版本的页面。
- Javascript 切换语言
一些网站通过 Javascript 来加载本地化内容,但不会更改不同语言、区域的URL,而且没有不同的URL来匹配所访问内容。这种情况下,由于搜索引擎无法执行Javascript, 它除了访问默认的版本外,永远无法访问其他区域语言的内容。同时,用户也无法通过URL定位到本地化版本页面。
- 根据IP、Accept-Language 自动重定向
这样做往往不单影响收录,也影响用户体验。原因有以下几点:
- 大部分搜索引擎只从少数IP地址进行抓取。
- 我们设置的IP库通常不全。
- 重定向对页面加载时间产生负面影响。
- 如果您使用外语网站,Chrome一般会问你不要翻译,如果您选择了不需要重复,Chrome 会把该语言放入请求头Acept-Language当中。
- 搜索引擎一般不会带上Acept-Language。
事实上,Google已经改进并将继续改进其区域设置感知抓取能力。截至2015年初,他们宣布Googlebot将从世界各地的许多IP地址(而不仅仅是美国)进行抓取,并将使用Accept-Lang请求头查看您的网站是否根据用户区域语言信息设置并更改页面内容。但同时,他们非常清楚这项技术并不完美,这并不能取代使用hreflang的建议。
相反,更好的用户体验是当您检测到用户可能会发现您的网站的另一部分更相关时,该横幅就会出现。
来源于 www.apple.com www.ikea.com
永不使用自动重定向规则的一个例外是,当用户选择您网站上的国家、地区或语言首选项时,您应该将该首选项存储在Cookie中,并在用户访问时将其重定向到其首选语言环境的版本页面上。同时要确保他们可以随时设置新的首选项,更新cookie。
- 添加hreflang标签将有助于我的跨国内容排名更好
Hreflang标签是国际SEO工具中最强大的工具之一。他们是成功的国际SEO策略的基础。但是,它们并不是一个排名因素。相反,它们旨在确保在Google搜索结果中显示正确的本地化页面。
- 使用旗帜图标来表示网站的语言
旗帜不是语言,例如英国旗帜并不代表英语。对于说这种语言但不是来自该国家的任何用户来说,代表语言使用者的国家旗帜是非常令人反感的。
来源于 http://www.flagsarenotlanguag... Flags symbolize nations, not languages
- 需要本地服务器来托管网站内容
因为Google和Bing过去曾明确表示,本地服务器在是一个重要的国际排名因素。事实上Google 及其他搜索引擎表示,现在本地服务器并不像以前那么重要。随着CDN的普及,通常不需要本地服务器。而您只需考虑的是,目标区域用户获取您的网页速度的体验优化。
- 国际搜索引擎 == Google ?
虽然谷歌是迄今为止全球搜索引擎中最常用的,但在一些国家,有一些本地的搜索引擎比谷歌更受欢迎。如果您的目标受众区域中包含这些地区,那您仍需要对其做好针对性的SEO 。
如:
中国(大陆地区)Baidu www.baidu.com
俄罗斯和东欧国家 Yandex www.yandex.com
韩国 NAVER www.naver.com
10. 后话
相信现在,您已经对国际SEO有了一定的了解。随着搜索引擎的不断发展,文中的一些观点也必定会过时,未来的您也应该带着审视的眼观来阅读、理解此文。Let''s do it .
参考文章:
Google Webmaster Central Blog
Google Search Console帮助
Learn About International SEO
The International SEO Checklist
.NET Framework 在全球化(globalization)功能上新的类库:Microsoft Visual Studio International Pack 1.0 版 Beta1
.NET Framework 在全球化(globalization)功能上新的类库:Microsoft Visual Studio International Pack 1.0 版 Beta1
推广一下,需要的人可到微软网站下载
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-tw&FamilyID=e432aeaa-7b6f-4b0d-968b-b6aafda05e34
.NET 程序开发人员要建立一个全球化的应用程序,必须有各式各样不同文化及语系上的不同功能. Visual Studio International Pack 中包括了一组类库以满足这样的需求. Visual Studio International Pack 1.0版本针对亚洲的四个不同语系,提供了以下七个不同的组件来加强 .NET Framework 在全球化(globalization)功能上的支持.
- 东亚语系数字格式化类库 - 可以将数值数据格式化成中文繁体,中文简体,日文以及韩文的数值大写字符串.
- 日文 Kana 转换类库 - 可以将 Kana 符组转换至其他日文的表示方法.
- 日文文字对齐类库 - 可以在应用程序中产生出日文特有的文字对齐字符串.
- 日文 Yomi 自动完成类库 - 提供一个类库及 TextBox 控件范例以支持可感应日文输入法的自动完成功能.
- 韩文自动完成TextBox 控件- 提供一个 TextBox 控件以支持可感应韩文输入法的自动完成及 Intellisense 功能.
- 简体中文拼音转换类库 - 可帮助应用程序取得简体中文符的拼音及笔划等资讯.
- 中文繁简转换类库及 Add-In 工具 - 可帮助应用程序转换中文繁体字符串至中文简体,或是由简至繁体. 此组件也包括了一个 Visual Studio 的 Add-In 工具,可以将资源档中的字符串做繁简转换. 让使用者快速的开发出两岸三地的应用程序.
原文:大专栏 .NET Framework 在全球化(globalization)功能上新的类库:Microsoft Visual Studio International Pack 1.0 版 Beta1
2023年最受欢迎的WordPress SEO 插件——All in One SEO Pack
这个名字说明了一切;这是一个All in One SEO Pack插件。它拥有超过 200 万的活跃安装量和超过 1,100 条五星级评论。
All in One SEO Pack非常适合初学者和高级用户。它具有设置和工具,可让您在获得更多经验时扩展控制。
此插件优化标题并自动为所有搜索引擎生成元标记。它还为 Google 和 Bing 提供 XML、图像和 RSS 站点地图支持。
All in One SEO Pack插件的优点
All in One SEO Pack 绝对适合初学者使用。它具有轻松编辑页面和元标题和描述的能力,以及控制索引(您允许搜索引擎看到的内容)、标记和其他高级搜索选项的高级工具。
它的设置也非常简单,免费版本提供了您从一开始就需要的所有基本功能。
All in One SEO Pack插件的缺点
与 Yoast 相比,All in One SEO Pack 无法具体分析您的内容并为您提供估计的分数和排名。您还必须手动浏览其用户界面。
最大的缺点之一是插件的免费版本缺乏支持。
北京六翼对All in One SEO Pack插件的看法
All in One SEO Pack 插件的整体性能值得称赞。免费版本已经可以显着提升您网站的搜索引擎优化。
一个主要缺点是它不允许访问从免费到高级的关键功能,即使是高级版本也有不足之处。
此外,一些关键功能的配置需要一些专业知识和经验才能理解。
2023年流行的 WordPress SEO 插件——Yoast SEO
为了帮助您选择最好的 WordPress SEO 插件,我们测试了多个 WordPress SEO 插件,以突出每个插件的功能,从简单到复杂。我们提供了免费和高级插件选项,因此您还可以决定您的投资水平。每个插件都包含有关功能、优点、缺点、定价和我们最终结论的信息。
Yoast SEO
当我们谈论最好的 SEO WordPress 插件时,Yoast SEO总是排在首位。它是使用最广泛的 WordPress SEO 插件,拥有超过 500 万的活跃安装和超过 25,000 条 5 星评论。
Yoast SEO 是一个一体化的 WordPress SEO 插件,在为网站访问者和搜索引擎优化内容方面做得非常出色。
Yoast SEO 的优点
Yoast SEO 是最受欢迎的页面搜索引擎优化插件之一。话虽如此,如果您需要,它背后的社区、支持和文档总是随时可用。
该插件本身是功能最丰富的插件之一。相信它声称是最终的多合一 SEO 插件。
凭借焦点关键字、设置元描述的能力、链接您的 Google Search Console 和其他网站管理员工具、设置基石内容的能力及其内容和 SEO 评分系统等功能,该插件为您提供了您需要的所有信息能够针对 SEO 优化您的内容。
Yoast SEO 的缺点
Yoast 最大的警告之一是初学者可能难以使用。
当然,您会看到简单的说明和入门指南。但在某些时候,您将不得不检查其他可用选项并自己找出它们。
如前所述,有很多可用的指南和教程。但是熟悉你正在使用的东西需要一段时间。
此外,免费版本的功能相当有限。
六翼对 Yoast SEO 的看法
Yoast SEO 已成为 WordPress SEO 插件的代言人。它是最好的之一。可用的选项集、定制量以及此插件背后的开发人员和用户社区在其他 SEO 插件中很难找到。
也就是说,它并非没有缺点。有了从一开始就可用的设置和信息的数量,您可能会发现自己陷入了下一步该做什么的困境。或者更糟的是,设置一些不适合您网站的设置。
Yoast SEO很棒。这是最好的之一。但在进行任何重大更改之前,请确保先阅读一些简单的内容,即使是推荐的。
ACM International Collegiate Programming Contest, Damascus University Collegiate Programming Cont...
签到题
A
4min 1Y
C
45min 3Y
题意
给两个串,要把第一个串变成第二个串。每次选择一个半径r
,然后以第一个串的中心为中心,r
为半径,左右翻转。问最少几次操作?
题解
细节有点多。
- 先是输出
-1
的情况。这个很好考虑 - 然后遍历s1串,对于位置
i
,如果需要翻转(s1[i]=s2[n+1-i]
),则打上标记1,不需要翻转(s1[i]=s2[i]
).则打上标记0,如果翻不翻转都可以(s1[i]=s1[n+1-i]
),打上标记2。 - 遍历
[1,n/2]
,对于打上标记2的位置,我们要决定是翻还是不翻,根据贪心,我们可以怠惰一点!对于打上标记2的位置,和前一个位置保持一致即可。
F
25min 1Y
题解
统计一下每个数字出现了多少次,出现了x
次,对答案的贡献则为x!
,相乘即为答案。
J
42min 2Y
题解
按题意模拟。
冷静分析一下开局
- 开场看了C觉得很基本,然后过了A,开始写C。
- C细节没考虑清楚,用了
10min
,WA on test 2!
#include <iostream>
#include <cstring>
using namespace std;
typedef long long LL;
const int N = 100000 + 10;
int T;
char s1[N], s2[N], s3[N];
bool ok[N];
int main() {
scanf("%d", &T);
while (T --) {
scanf("%s %s", s1+1, s2+1);
int n = strlen(s1+1);
int mid = (n+1)/2;
if (s1[mid] != s2[mid]) {
printf("-1\n"); continue;
}
bool gg = 0;
for (int i=1;i<mid;i++) {
if (s1[i]==s2[i] && s1[n-i+1]==s2[n-i+1])
ok[i] = 1;
else if (s1[i]==s2[n-i+1] && s1[n-i+1]==s2[i])
ok[i] = 0;
else
gg = 1;
}
if (gg) {
printf("-1\n"); continue;
}
int ans = 0;
ok[0] = 1;
for(int i=1;i<mid;i++) {
if (ok[i] != ok[i-1])
ans ++;
}
printf("%d\n", ans);
}
}
完全没有考虑s1[i]=s1[n+1-i]
的情况。
用了6分钟fix了一下。s1[i]=s1[n+1-i]
int ans = 0;
ok[0] = 1;
for(int i=1;i<mid;i++) {
if (ok[i] != ok[i-1] && ok[i] != 2)
ans ++;
}
printf("%d\n", ans);
然后喵了个呜,又一次WA2
- 我逃跑,用了5min时间过了F
- 用了10min的时间J题
WA2
- 用了5min的时间fix了一下,人调换方向那个地方写得意识有点模糊。
- 用了2min时间fix了一下C,很沙比的错误,比如说
n = 7
,前3位,标记为0 2 0
的情况就智障掉了。
前期比较容易细节没考虑清楚就上去写代码。C
,J
这两个模拟题都是这个原因吧。开始写代码之间,大概是抱着“随便搞搞就好”的想法。这种态度很沙比的啊。
- 我在求什么?
- 在模拟的过程,变量会如何变化?
这两个问题都考虑得不清楚吧!
中档题
B
Hash的做法很容易看出。然后就unlimited WA TLE MLE
搞Hash的经验严重不足?
边的种数不会超过n种,因此我们放n个桶。每个桶记录这种边出现的次数。
然后就是对一个XXX进制下,n位数的hash了【双hash保平安】
#include <iostream>
#include <algorithm>
#include <vector>
#include <unordered_map>
using namespace std;
typedef long long LL;
const int N = 10000008;
const LL MOD1 = 100000007;
const LL MOD2 = 923439347;
int T;
int n, x, y;
int val[N]; vector<int> v;
LL k1[N], k2[N];
unordered_map< LL, int > mp;
int main() {
scanf("%d", &T);
k1[0] = k2[0] = 1;
for(int i=1;i<N;i++) {
k1[i]=k1[i-1]*10007LL%MOD1;
k2[i]=k2[i-1]*20007LL%MOD2;
}
while (T --) {
scanf("%d", &n);
v.clear();
for (int i = 1; i <= n; i ++) {
scanf("%d %d", &x, &y);
if (x > y) swap(x, y);
val[i] = (2*n+1)*x + y;
v.push_back(val[i]);
}
sort(v.begin(), v.end());
v.erase(unique(v.begin(), v.end()), v.end());
for(int i=1;i<=n;i++) {
val[i] = lower_bound(v.begin(), v.end(), val[i])-v.begin()+1;
}
mp.clear();
LL sum1, sum2;
LL ans=0;
for (int i=1;i<=n;i++) {
sum1 = 0, sum2 = 0;
for(int j=1;j<=n;j++) {
sum1 += k1[val[j]];
sum1 %= MOD1;
sum2 += k2[val[j]];
sum2 %= MOD2;
}
mp[sum1*MOD2 + sum2] ++;
for(int j=i+1;j<=n;j++) {
sum1 += k1[val[j]]-k1[val[j-i]];
sum1 = (sum1%MOD1+MOD1)%MOD1;
sum2 += k2[val[j]]-k2[val[j-i]];
sum2 = (sum2%MOD2+MOD2)%MOD2;
mp[sum1*MOD2+sum2] ++;
}
for (auto x: mp) {
LL v = x.second;
ans += v * (v - 1) / 2;
}
mp.clear();
}
printf("%lld\n", ans);
}
}
G
题意
修改最少的元素,使得序列的GCD为x,LCM为y。
题解
先判-1
(一番激烈的讨论)
如果a[i]%x!=0 or y%a[i]!=0
,那么i
就是个卜。
直觉告诉我们把一个数字变成x,另一个数字变成y,只要其它的数字不卜,生活就有保障了。
- 如果卜的个数>=2,那么答案就是卜的个数了。
- 否则答案可能是1,可能是2,可能是0
- 答案是0,很简单。
- 答案是1,很不简单。我们枚举一下每个数字,看他是否能力挽狂澜,我们把枚举的数字放逐掉,求出其它数字的GCD&LCM(先预处理前缀后缀GCD&LCM),然后看一看世界末日前怎么办?来得及拯救吗?【具体怎么做,留给读者思考。】
- 答案是2,很简单,加个else
I
题意
n堆石头,两种操作,两人轮流操作。
- 可以从一堆石头中拿走一个石头。
- 如果每堆石子都至少有1个,可以从每堆石头中拿走一个石头。
先手胜?后手胜?
题解
冷静分析一下
- n%2=1. 易证,留给读者思考【读者似乎就我一个人。】
- n%2=0. 这个得冷静分析一下。
- min=1, 先手可以把后手气死。类似于chomp Game的模型。
- min=2, 第一种操作肯定不可以施展的!不然会被气死。既然只能施展第二种操作,胜负显而易见了吧。
- min=3, 先手可以把后手气死。类似于chomp Game的模型。
- min=4, .......
博弈在模型的直觉很重要的吖!这题意识到了chomp Game就很简单了吧。
K
题意
n个点,n条边,多组查询,求两点间最短路。
题解
先去掉一条边edge,那么这个图就是一颗树了。
枚举,u到v是否要经过edge即可。
冷静分析一下中期
- 先用了10min施展G,施展了一大半,然后咕咕咕了。
- 先用了10min施展B题。没考虑清楚自己在hash什么东西,耽误了一段时间,然后
WA11
。 - 用了13min过了K。
- 用了3min过了G的样例,
WA2
- 开始unlimited Fix G,中间用了很长一段时间次饭去了。但调G的时间至少有1小时。
- Bug1:没读完就输出结果,WA
- Bug2:复杂度
nsqrt(n)
.【不错,有创意】 - Bug3:
n=1
的特判不到位,搞得后面越界了。一大波RE。
- 用了一个小时Fix B题的Hash,好不容易开始双hash然后MLE。枚举长度后清空,解决了问题。
- 用了半个小时搞I
emmmm....大部分时间都在Fix辣鸡。。。
考虑清楚再写啊······
羊肉粉丝汤弱鸡啊。
感觉30min
4题,2h30min
8题是比较合理的。
关于International SEO:多语言多区域网站SEO的快速入门指南和多语言网站主站有哪些的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.NET Framework 在全球化(globalization)功能上新的类库:Microsoft Visual Studio International Pack 1.0 版 Beta1、2023年最受欢迎的WordPress SEO 插件——All in One SEO Pack、2023年流行的 WordPress SEO 插件——Yoast SEO、ACM International Collegiate Programming Contest, Damascus University Collegiate Programming Cont...等相关知识的信息别忘了在本站进行查找喔。
本文标签: