码迷,mamicode.com
首页 > 其他好文 > 详细

2016暑期选拔第一场20160709

时间:2016-07-12 07:55:10      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

A みねちゃんの修罗场

Time Limit: 5000 mSec    Memory Limit : 1024 KB

技术分享 Problem Description

みねちゃん是个成绩优秀大学二年级学生,本来是和像自己妹妹一般的青梅竹马一起过着普通的大学生活的,但某天却被校内公认的第一美人表白了。然而她的真实意图却是为了骗过众人而需要みねちゃん与她假扮情侣。被掌握了自己的某个“秘密”的みねちゃん被迫假扮“男友”这一角色……然而在此之后他的“未婚妻”也加入了进来,围绕みねちゃん的壮烈修罗场就此拉开帷幕!(这个剧本怎么这么眼熟。。。)

又是一年的情人节,为了不误入柴刀END,みねちゃん必须要给三个“女友”送三份一模一样的礼物(开后宫的难度真是大啊~)。作为一个土豪,みねちゃん自然是买了好多好多的东西准备送给三个妹子,然而当买好的东西送到家时,みねちゃん一眼发现东西少了一件!みねちゃん在X东下了N份订单,每份订单包括一模一样的3件礼物,(有可能会多次购买同一种的礼物)结果只送了3*N-1件来。可惜的是,みねちゃん只能一眼看出礼物少了一件,并不能看出少的到底是哪一种,现在只好委托你根据每件物品的编号来检查一下,到底是哪一种少送了一件(数量不是3的倍数)。你问我为什么他不自己检查?拜托,人家可是有三个妹子的,怎么可能有那么多空闲时间,所以这种无聊的事情还是交给你好了~

技术分享 Input

第一行一个整数N,即みねちゃん一共订购了N份礼物

接下来3*N-1个数,表示送来的物品的物品编号。由于X东物品种类丰富,物品编号均为十位的十进制整数,可能会有前导零。编号间可能有换行。

输入文件保证不大于64M。

技术分享 Output

一个数,表示缺少的那件礼物的订单号。记得换行。

技术分享 Sample Input

2
0000000001 0000000002 0000000002 0000000001 0000000002

技术分享 Sample Output

0000000001
  • 思路:
    • 空间限制特别小,所以如果用map<string,int>会MLE。
    • 这道题其实是找出出现次数不会被3整除的订单号。可以把每个订单不同位上的数字分开存。
      • 所以开一个map[10][10]的数组。每个订单号都是十位数,一维i就表示第i位。二维j表示第i位上面的数字是j。a[i][j]表示,在第i位上,数字j出现了a[i][j]次。
      • 比如在本题的样例中,map[9][1]=2,map[9][2]=3。(位数从0开始)

 

C Alice and Bob and Necklace

Time Limit: 1000 mSec    Memory Limit : 32768 KB

技术分享 Problem Description

Alice和Bob今天又在玩游戏啦,他们有一条项链,由n个珠子串成一个环组成,现在由Alice先手,两个人轮流操作,每轮操作可以从已有的环或链中,选择一个环或一条链,然后选择上面连续的1~k个珠子消除掉,这时环会变成一条链,而链最多会变成两条新的链,如果环或链的所有珠子都被消除掉了,则不会形成新的链。谁先无法操作就算输,问是Alice还是Bob会获胜。

技术分享 Input

第一行是T(T <= 100),表示有T组样例

接下来T行每行两个数字n (1 <= n <= 100),k(1 <= k <= 100)表示珠子数以及每轮操作最多消除的珠子数。

技术分享 Output

输出T行,每行输出Alice或者Bob,表示哪方取胜

技术分享 Sample Input

2
3 1
4 2

技术分享 Sample Output

Alice
Bob
  • 思路:【博弈论】比赛的时候多列举几个就猜出来了。。。但是这样是不对滴!
    • 结论:
      • 如果k==1,n是奇数,先手胜
      • n<=k,先手胜
      • 其他情况后手胜
    • 证明:
      • k==1,n<=k,结果很明显
      • n>k且k!=1,如果n是偶数,不管先手拿哪个珠子,后手都可以拿和他中心对称的那些珠子。如果n是奇数,后手可以拿和他中心对称的珠子,并且少拿或者多拿一颗,使剩下的珠子达到类似中心对称的情况。
  • 扩展:博弈论

E ⑨字切

Time Limit: 1000 mSec    Memory Limit : 32768 KB

技术分享 Problem Description

灵梦从地狱回来后就去了守矢神社,遇到了早苗,她发现早苗学会了一张新的符卡——秘法「⑨字切」。

早苗先划出一个N*M的矩阵,每个格子里面有个一定的灵力值( 绝对值不大于10,可能是负数 ) ,每个子矩阵( 即被原矩阵包含的一个矩阵,至少包含一个元素 )的灵力值就是它所包含的格子内的灵力值的和。 你需要找出灵力值最大的子矩阵的灵力值。 例如: N=3 , M=4,矩阵如下所示:

-2 3 4 -1

1 -10 2 4

4 3 2 1

最大灵力值为12。对应的子矩阵是

4 -1

2 4

2 1

技术分享 Input

输入包含多组数据。(数据不超过10组)

每组数据的第一行有两个整数n,m(n,m<=100),表示矩阵的长和宽。

接下来n行,每行m个数字,表示每个格子里的灵力值。

技术分享 Output

每组数据输出一个数字,表示最大的灵力值。

技术分享 Sample Input

1 7
-9 -9 8 -1 1 7 -4
3 4
-2 3 4 -1
1 -10 2 4
4 3 2 1

技术分享 Sample Output

15
12
  • 思路:最大连续子序列和,o(n)。把这道题转化成求很多个(m*(m+1)/2个)序列的最大连续子序列和。复杂度o(n3)。
    • 最大连续子序列和:MaxSum[i] = Max{ MaxSum[i-1] + A[i], A[i]};
    • 技术分享

2016暑期选拔第一场20160709

标签:

原文地址:http://blog.csdn.net/qq_32707623/article/details/51885650

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!