第十七周 12.20-12.26

12.20-12.22

什么都没做。

 

12.23

POJ 3581 Sequence

这是一个单case过EOF哇的神题。我只是想验个板阿QAQ。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <algorithm>
 5 using namespace std;
 6 const int maxn = 1e6 + 10;
 7 
 8 int s[maxn], rev[maxn];
 9 int n, k, SA[maxn], r[maxn], tmp[maxn];
10 bool cmp(int i, int j)
11 {
12     if(r[i] != r[j]) return r[i] < r[j];
13     return ( i + k <= n ? r[i+k] : -1 ) < ( j + k <= n ? r[j+k] : -1 );
14 }
15 void get_SA(int sz)
16 {
17     for(int i = 0; i <= sz; i++)
18     {
19         SA[i] = i;
20         r[i] = i < sz ? rev[i] : -1;
21     }
22     for(k = 1; k <= sz; k <<= 1)
23     {
24         sort(SA, SA + sz + 1, cmp);
25         tmp[SA[0]] = 0;
26         for(int i = 1; i <= sz; i++) tmp[SA[i]] = tmp[SA[i-1]] + cmp(SA[i-1], SA[i]);
27         memcpy(r, tmp, sizeof(r));
28     }
29     return;
30 }
31 
32 void R(int * t, int l, int r)
33 {
34     for(int i = 0; i <= (r - l) / 2; i++) swap(t[l+i], t[r-i]);
35 }
36 
37 int main(void)
38 {
39     scanf("%d", &n);
40     int p1, p2;
41     for(int i = 0; i < n; i++) scanf("%d", s + i);
42     memcpy(rev, s, sizeof(rev));
43     R(rev, 0, n - 1);
44     get_SA(n);
45     for(int i = 0; i <= n; i++)
46         if(SA[i] > 1 && SA[i] < n)
47             {p1 = n - SA[i]; break;}
48     int m = n - p1;
49     for(int i = 0; i < m; i++) rev[i] = rev[i + m] = s[p1 + i];
50     R(rev, 0, 2 * m - 1);
51     get_SA(2 * m);
52     for(int i = 0; i <= 2 * m; i++)
53     {
54         p2 = p1 + m - SA[i];
55         if(p2 > p1 && p2 < n) break;
56     }
57     R(s, 0, p1 - 1);
58     R(s, p1, p2 - 1);
59     R(s, p2, n - 1);
60     for(int i = 0; i < n; i++) printf("%d\n", s[i]);
61     return 0;
62 }
Aguin

 

12.24

补个CF。

CF 608 C Chain Reaction

dp推。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 using namespace std;
 5 const int maxn = 1e6 + 10;
 6 int pos[maxn], level[maxn];
 7 int dp[maxn];
 8 
 9 int main(void)
10 {
11     int n;
12     scanf("%d", &n);
13     for(int i = 1; i <= n; i++)
14     {
15         int a, b;
16         scanf("%d%d", &a, &b);
17         pos[a] = 1;
18         level[a] = b;
19     }
20     int ans = 0;
21     for(int i = 0; i < maxn; i++)
22     {
23         if(!pos[i]) dp[i+1] = dp[i];
24         else dp[i+1] = (i - level[i] >= 0 ? dp[i-level[i]] : 0 ) + 1;
25         ans = max(ans, dp[i+1]);
26     }
27     printf("%d\n",n - ans);
28     return 0;
29 }
Aguin

 

CF 608 D Zuma

不会捉。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 using namespace std;
 5 int c[555], dp[555][555];
 6 
 7 int main(void)
 8 {
 9     int n;
10     scanf("%d", &n);
11     for(int i = 1; i <= n; i++) scanf("%d", c + i);
12     for(int i = 1; i <= n; i++)
13         for(int j = i; j <= n; j++)
14             dp[i][j] = (i == j ? 1 : n + 1 );
15     for(int l = 2; l <= n; l++)
16     {
17         for(int s = 1; s + l - 1 <= n; s++)
18         {
19             for(int k = s; k < s + l - 1; k++)
20                 dp[s][s+l-1] = min(dp[s][s+l-1], dp[s][k] + dp[k+1][s+l-1]);
21             if(c[s] == c[s+l-1]) dp[s][s+l-1] = max(1, min(dp[s][s+l-1],dp[s+1][s+l-2]));
22         }
23     }
24     printf("%d\n", dp[1][n]);
25     return 0;
26 }
Aguin

 

CF 608 E Marbles

不懂证。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 using namespace std;
 5 const int maxn = 1e6 + 10;
 6 int n, Next[maxn];
 7 char a[maxn], b[maxn];
 8 
 9 void getNext(void)
10 {
11     Next[0] = Next[1] = 0;
12     for(int i = 1; i < n; i++)
13     {
14         int j = Next[i];
15         while( j && b[i] != b[j]) j = Next[j];
16         Next[i+1] = b[i] == b[j] ? j + 1 : 0;
17     }
18     return;
19 }
20 
21 bool KMP(void)
22 {
23     getNext();
24     int j = 0;
25     for(int i = 0; i < n; i++)
26     {
27         while(j && b[j] != a[i]) j = Next[j];
28         if(b[j] == a[i]) j++;
29         if(i == n - 1 && j) return true;
30     }
31     return false;
32 }
33 
34 int main(void)
35 {
36     scanf("%d", &n);
37     n--;
38     scanf("%s%s", a, b);
39     for(int i = 0; i < n; i++)
40     {
41         if(b[i] == 'N') b[i] = 'S';
42         else if(b[i] == 'S') b[i] = 'N';
43         else if(b[i] == 'E') b[i] = 'W';
44         else b[i] = 'E';
45     }
46     reverse(b, b + n);
47     puts(KMP() ? "NO" : "YES");
48     return 0;
49 }
Aguin

 

12.25-12.26

什么都没干。

转载于:https://www.cnblogs.com/Aguin/p/5065101.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要下载Node.js 12.20版本,可以按照以下步骤进行操作: 1. 打开Node.js官方网站的下载页面:https://nodejs.org/en/download/releases/ 2. 在"Previous Releases"(之前发布的版本)中找到12.20版本。可以使用浏览器的查找功能来更快地找到该版本。 3. 在12.20版本的列表中,根据你的操作系统选择对应的安装包。Node.js同时支持多种操作系统,包括Windows、macOS和Linux。 4. 点击相应的安装包下载链接,开始下载Node.js 12.20的安装包。下载过程可能需要一些时间,取决于你的网络速度。 5. 下载完成后,找到下载的安装包文件,双击运行。根据提示,选择合适的安装位置和设置。 6. 安装过程中,可以根据自己的需求选择附加组件和工具,也可以使用默认设置。 7. 完成安装后,可以打开命令提示符(Windows)或终端(macOS、Linux),输入"node -v"命令来验证Node.js是否成功安装。如果安装成功,命令行将显示12.20版本号。 注意:在下载和安装Node.js时,建议从官方网站下载,以确保安全性和稳定性。另外,不同的操作系统可能有不同的安装方法,请根据自己的操作系统选择正确的安装包和步骤。 ### 回答2: 要下载Node.js 12.20版本,首先需要访问Node.js官方网站。在官网首页,可以看到下载按钮,点击进入下载页面。 在下载页面,会显示所有可用的版本和操作系统。找到Node.js 12.20版本下载选项,并选择与你的操作系统相对应的安装包。Node.js支持多个操作系统,如Windows、Linux、Mac等。 点击相应的操作系统安装包后,会开始下载安装程序。下载过程可能需要一些时间,取决于你的网络速度。 下载完成后,可以找到安装包文件,双击打开安装程序。按照提示一步一步进行安装,可以选择安装目录和其他一些额外的组件。 完成安装后,可以在命令行中输入以下命令来验证安装是否成功: ```shell node -v ``` 如果安装成功,会显示Node.js的版本号,其中包括"12.20"。 Node.js的下载过程相对简单,但要确保下载的是官方版本,并且与你的操作系统兼容。官方网站也提供了更详细的下载和安装指南,以及其他相关的文档和资源,可供进一步学习和使用Node.js。 ### 回答3: 要下载Node.js 12.20,你可以按照以下步骤进行操作: 1. 打开Node.js官方网站的下载页面。可以在搜索引擎中搜索"Node.js下载",然后点击官方网站的链接。 2. 在下载页面中,你会看到Node.js的不同版本和操作系统的选择。找到12.20版的下载选项。 3. 选择适合你操作系统的版本。Node.js支持多种操作系统,包括Windows、macOS和Linux。确保选择正确的版本以适应你的系统。 4. 点击下载按钮,并选择下载的文件保存路径。等待一段时间,直到文件下载完成。 5. 下载完成后,你可以双击下载的文件来运行安装程序。根据提示进行安装,可以选择默认选项或自定义选项。 6. 安装完成后,打开终端或命令行工具,输入命令`node -v`来检查Node.js的版本。如果显示12.20或更高的版本号,则表示安装成功。 请注意,建议在下载和安装Node.js时使用官方网站提供的下载链接。这样可以确保你获得的是最新版本和安全的文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值