10.15 lzxkj
几天前写的,忘了放了,在此填坑
10月16的题我出的不写题解了
lzxkj
题目背景
众所不周知的是, 酒店之王 xkj 一个经常迷失自我的人 有一天, 当起床铃再一次打响的时候, TA 用 O(1)的时间在 TA 那早就已经生锈的大脑中自动生成了一串数字, 天啊 TA 们实在是太乱了 尽管 xkj 对眼前的世界不屑一顾, 可是 TA 知道, 如果继续迷失的话, 自己会被那个该死的楼管记上然后站在级部门口的, TA 再迷失也终究逃不过现实主义的摧残。所以, TA 静下心来, 希望把数字整理一下(顺道再睡一会儿)
题目描述
在酒店之王 xkj 脑海当中生成的数字十分的杂乱无序, 一点也不当年信哥要求的一步到位,合理合法
例如, 有的是这样的 92839489, 165651, 23 , 9, 00000000
但是有的又是这样的 283748.2398479, 239.39, 0.0, 00002333.333000000
所以 TA 希望自己可以先把 TA 们整理的科学一下(直接说科学计数法不就完事了),总而使 TA 们看起来十分的优美
例如 92839489 整理成 9.2839489E7
再例如 9 整理成 9E0
还是例如 0.0 或者说是 0 整理成 0
最后比如 00002333.333000000 整理成 2.333333E3
亦或比如 0.0023333 整理成 2.3333E-3
酒店之王 xkj 现在由于还需要加工一下自己的样品被, 把自己的边边角角修一下,所以 TA 只好把任务交给了已经开始读操前读的 cdycdy 同志加油!!!xkj 在胜利的彼岸等你!!!
输入格式
一行,一串数字可能是整数,也可能是浮点数
输出格式
一行, 表示这一串数字用科学计数法表示的格式
样例输入1
92839489
样例输出1
9.2839489E7
样例输入2
00002333.333000000
样例输出2
2.333333E3
样例输入3
0.0
样例输出3
0
样例输入 4
10000
样例输出4
1E4
样例输入5
10
样例输出5
1E1
样例输入6
0.0023333
样例输出6
2.3333E-3
温馨提示
请您尽量思考一下科学计数法的特殊情况 最好不要被一些稀奇古怪的东东 hack 掉(^_^ ^_^ ^_^ ^_^)
数据范围
保证对于 100%的数据给出数的长度不超过 15000 位请您放心的使用各种算法本题十分良心 绝对不卡时间(但是不要太过分) -----沃兹基硕德
题解
xjb膜
先判断是不是整数,如果是整数就强制把它末尾加上点,转化为小数
然后把前导0和后导0删除
然后找小数点位置,有四种情况:
(1)只有.
一个字符,说明肯定是0
(2).
后面没有字符,说明是整数。输出第1位,然后一个小数点,然后输出后面的位即可。注意末尾的0不能输出。最后输出E和小数点与第一位的距离
(3).
前面没有字符,说明是个0点几的小数,同上。注意前导0不能输出。
(4).
的前后都有字符,那么就直接输出整个数即可,在第一个数后面加上.
,中间的.
不输出,最后还是输出E和小数点与第一位的距离
对于负数我们判一下开头是不是负号,并把负号扔了,如果是,那么我们输出加上负号就行了。
death
题目背景
众所不周知的是, 酒店之王 xkj 一个经常埋葬死去自己的人当 TA 再一次从迷失的困境之中走出来的时候, TA 被某锤姓男子告知:“你违纪了”违纪就意味着精神的死亡, 灵魂的无处安放也许这才是最好的归途......
题目描述
xkj 的灵魂不断的飘荡,飘荡到了食堂的打饭口,TA 无助的望了一眼,下定决心:先把肚 子填饱再说食堂现在还有 n个食物,每一个食物都有一个美味程度 wi,但是同样也存在一个费用vi,xkj 当然希望吃到美食的美味程度总和最大,但是想必你也知道,TA 的饭卡最近有一些拮据最多只可以消费 W 元,由于 TA 的灵魂在飘荡的时候忘记了带上脑子(唉,脑子是一个好东西),所以 TA 找到了还在站级部的 cdy,希望 cdy 帮 TA 计算一下,TA 在饭卡不破产的情况下,该如何消费使自己吃到食物的美味程度总和最大
输入格式
第一行一个整数 n 表示一共有 n 个食物
接下第 2 行至第 n+1 行每行两个整数 vi,wi 表示该食物的费用以及美味程度
最后一行一个整数 W 表示最多可以消费 W 元
输出格式
一行, 表示合法消费情况下的最大美味程度总和
样例输入
4
2 3
1 2
3 4
2 2
5
样例输出
7
样例解释
选择 1,2,4 号物品
温馨提示
这不就是一个裸的 01 背包吗??????
数据范围
保证对于 100%的数据1<=n<=100 1<=wi<=1000 1<=vi<=10^7 1<=W<=10^9
题解
根据数据范围,我们把消费的价格作为下标肯定会各种TLE和MLE,但是美味程度是1000的,所以我们可以把美味程度作为下标
f[i][j]
表示选取前i个物品中的若干个,物品的价值为j
时的最小体积。
f[i][j]=min(f[i-1][j],f[i-1][j-w[i]]+v[i])
然后直接递推滚动一下就行了
relive
题目背景
众所不周知的是, 酒店之王 xkj 一个经常死去活来的人现在就连 TA 自己都不知道到底该不该醒过来。 也许在黑暗中醒着在光明中睡着未尝不是一种逃避现实的方法可是 TA 早已饱受现实主义的摧残,也许是是时候该做一个了断了.好吧天亮之后总是潦草一场,清醒的人最荒唐清醒归庆清醒 xkj 知道:有的时候急急忙忙袜子会反穿.所以 TA 认为一切都应该有 序, 毕竟有序才是人间大美嘛但是 xkj 是一个十分懒惰的人,所以尽管已经存在了 c++11 的 STL 提供的强力 sort()了,TA 还是不愿意自己动手,所以 TA 十分邪恶把 cdy 也拉上了 TA 的贼船。cdy 还想好好的多活几年,所以 TA 才不愿意同 xkj 一同搭乘通往天堂的高铁(除非十分好看的高铁服务小姐)。 由于 xkj 使用拼多多购买的高铁车票是由新兴红牛党 wzy倒买的所以 cdy 才有逃出来的机会, 但是 xkj 在车票上又设下了机关, 所以 cdy 必须完成挑战才可以复活,而挑战的谜底竟然是 xkj 一直偏爱的有序性
题目描述
挑战分为三重
第一重 排序
第二重 求逆序对
第三重 排序最小成本
科普时间:最小成本排序就是按升序排序排序的代价,譬如说 1,2,3,5,4 排序只需要交换 4,5 即可所以代价就是(4+5)=9;也就是交换两个数的代价 再比如说 83,17,8 按照升序排好序就是交换 83 与 8 代价和为 91
输入格式
第一行 一个整数 n 表示序列数的个数
第二行,一个整数数量为 n 的序列
输出格式
共三行,第一行为按照原数列排好序之后的数列第二行为逆序对数第三行为排序最小成本
样例输入
5
1 2 3 5 4
样例输出
1 2 3 4 5
1
9
样例解释
这还需要解释????
温馨提示
这回就木有提示了
数据范围
保证对于 30%的数据 n<=10000
保证对于 100%的数据 n<=100000
每一个数的大小 ni 保证(1<=ni<=10^9)
保证数列的数互不重复
题解
T1+T2:cdq分治。略。
T3:《挑战程序设计竞赛》(第二版)上的最小成本排序(xkj问我这个问了好几遍问我会不会)
显然排序后的序列相对于排序前的序列是一个置换,对于置换里的某个环,我们可以考虑两种情况,一种是某个元素绕着这个环逆时针走一圈,直到这个元素到了他的后继位置,那么其它元素和它交换也都到了它的后继位置。显然我们必须让这个元素最小。此时答案为sum+(n-2)min
。第二种情况是请一个外来元素帮助替换,替换完了再把它撵回去,那么答案为sum+(n+1)nage+min
,当然那个元素要取最小的啦,就是排序之后第一小的元素对于每个环,这两个数取min。