Codechef SEPT17

Codechef SEPT17

比赛链接:https://www.codechef.com/SEPT17

CHEFSUM code
给定数组 a[1..n] ,求最小的下标 i ,使得 prefixsum[i]+suffixsum[i] 最小。
解:
注意到 prefixsum[i]+suffixsum[i] = sum(a)+a[i]。
于是找到 a[i] 最小的下标 i 即可。
时间复杂度 O(n) 。

MINPERM code
找到字典序最小的 1..n 的排列 p[i] ,使得 p[i] != i 。
解:
如果 n 是偶数,则满足条件的排列形如 2, 1, 4, 3, ..., n, n-1;
如果 n 是奇数,则满足条件的排列形如 2, 1, 4, 3, ..., n-1, n, n-2。
时间复杂度 O(n) 。

CHEFPDIG code
给定字符集合为 {0, 1, ..., 9} 的串 s[1..n],任选 i 和 j (i != j),可生成ASCII码为 10*s[i]+s[j] 的字符。
求出所有可生成的大写字母。
解:
统计每个数字出现多少次。
分别枚举生成ASCII码的十位数和个位数,统计每种情况。注意处理十位数和个位数相等的情况。
时间复杂度 O(|s|) 。

SEACO code
序列 a[1..n] 初值为 0 ,维护m个两种操作:
1. x y 将 a[x], a[x+1], ..., a[y] 整体 +=1 。
2. x y 重做第 x 至第 y 个操作。保证 y 小于当前操作编号。
要求输出所有操作之后的序列a[1..n]。
解:
注意到所有操作存在拓扑序,并且 1, 2, 3, ..., m 即是一个合法的拓扑序。
因此,我们把所有操作倒过来处理,进而维护每个操作操作了多少次。
需要使用线段树或树状数组解决。
时间复杂度 O(mlogm+n) 。

FILLMTR code
一个 n×n 的矩阵 B ,其元素只能取 0 和 1 ,并且只有 q 个位置的值给定,问是否存在数组 A[1..n] 使得对任意给定值的位置 B[i][j] ,都有 B[i][j] = | A[i]-A[j] |。
解:
如果 B[i][j] = 0,则 A[i] = A[j];
如果 B[i][j] = 1,则 $A[i] \not \equiv A[j] \bmod 2$。

我们把这个问题转化为图论问题。
考虑一个 n 个节点的无向图 G。
如果 B[i][j] = 0,则 合并节点 i 和节点 j ;
如果 B[i][j] = 1,则 节点 i 和节点 j 之间连一条边。

我们可以证明,矩阵 B 满足条件,当且仅当无向图 G 是一个二分图。
判断一个图是否是二分图,DFS即可,时间复杂度O(n+q)。

WEASELTX
给你一棵 n 个节点的有根树(节点),以及每个节点 i 的初始权值 a[i] 。
一次操作则是指将每个节点的权值变为以其为根的子树中所有节点的权值之异或和。
维护 q 个询问,每个询问则是问 T 次操作之后,根节点的权值。
解:
请移步 http://www.cnblogs.com/TinyWong/p/7478598.html

SUMCUBE
给定无向简单图 G = (V, E)(即不存在自环和重边),以及 k = 1, 2, 或3 。

$$ \sum_{S \subseteq V} f(S)^k, $$
其中 $f(S)$ 是两个端点都在 S 中的边的数量。
解:
请移步 http://www.cnblogs.com/TinyWong/p/7478753.html

WEASELSC
给定一个高度图 a[1..n] ,要求你减少图中一些地方的高度,使得得到的图是一个不超过 K 级的楼梯,要求楼梯的面积最大(即得到的图中所有位置的高度之和最大)。
解:
请移步 http://www.cnblogs.com/TinyWong/p/7479466.html

QGRID
给定一个 n × m(1 <= m <= 3) 的点网格,网格的边上以及点上都有权值。
初始时所有点的权值都为 0 。
维护两种操作:
1. x1 y1 x2 y2 c 把从 (x1, y1) 到 (x2, y2) 的最短路上的所有节点的权值都增加 c 。保证最短路唯一。
2. x y 询问 (x, y) 的权值。
解:
请移步 http://www.cnblogs.com/TinyWong/p/7482179.html

转载于:https://www.cnblogs.com/TinyWong/p/7478385.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
辽B代驾管理系统对代驾订单管理、用户咨询管理、代驾订单评价管理、代驾订单投诉管理、字典管理、论坛管理、公告管理、新闻信息管理、司机管理、用户管理、管理员管理等进行集中化处理。经过前面自己查阅的网络知识,加上自己在学校课堂上学习的知识,决定开发系统选择小程序模式这种高效率的模式完成系统功能开发。这种模式让操作员基于浏览器的方式进行网站访问,采用的主流的Java语言这种面向对象的语言进行辽B代驾管理系统程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。辽B代驾管理系统的开发让用户查看代驾订单信息变得容易,让管理员高效管理代驾订单信息。 辽B代驾管理系统具有管理员角色,用户角色,这几个操作权限。 辽B代驾管理系统针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理代驾订单信息,管理公告信息等内容。 辽B代驾管理系统针对用户设置的功能有:查看并修改个人信息,查看代驾订单信息,查看公告信息等内容。 辽B代驾管理系统针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理代驾订单信息,管理公告信息等内容。 辽B代驾管理系统针对用户设置的功能有:查看并修改个人信息,查看代驾订单信息,查看公告信息等内容。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。项目管理页面提供的功能操作有:查看代驾订单,删除代驾订单操作,新增代驾订单操作,修改代驾订单操作。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。新闻管理页面,此页面提供给管理员的功能有:新增新闻,修改新闻,删除新闻。新闻类型管理页面,此页面提供给管理员的功能有:新增新闻类型,修改新闻类型,删除新闻类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值