Wannafly模拟赛5 D Aria(全排列)
来源:互联网 发布:linux x264命令 编辑:程序博客网 时间:2024/05/21 13:12
题目链接:https://www.nowcoder.com/acm/contest/18/D
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 131072K,其他语言262144K
64bit IO Format: %lld
题目描述
Aria是一名武侦高强袭科的学生,由于悬殊的实力差距,没有人可以
与她配合。所以正如她的名字一样(Aria在歌剧中有独唱曲之意),Aria一直都是孤身一人。
Aria在无聊的时候会玩一种特殊的加法游戏,这个游戏是这样的:
∙ 给出n个数ai,起初sum = 0。
∙ 把这n个数按1 ∼ n的顺序依次加入,即在第i步时sum = sum + ai。
∙ 每加入一个数后,可以把sum十进制按位拆开后随意重排,得到一个
新的数。重排允许前导0的出现,比如10可以重排成1或10。
但一直玩这个游戏只会觉得越来越无聊,所以Aria想知道最后能得到
的最大的sum是多少。
输入描述:
第一行,一个正整数n。
第二行,n个正整数ai。
输出描述:
一行,一个正整数,即最大的sum。
示例1
输入
5
42 1 3 3 6
输出
100
说明
∙ 0+42=42
∙ 42+1=43
∙ 43+3=46
∙ 46+3=49→94
∙ 94+6=100
备注:
对于20%的数据,n = 1。
对于30%的数据,n ≤ 2。
对于40%的数据,n ≤ 3。
对于50%的数据,n ≤ 4。
对于另20%的数据,sum ≤ 1000。
对于100%的数据,n ≤ 5,1 ≤ ai ≤ 100。
解析:本来可以过的题,由于自己太懒,直接百度了一个全排列的板子,这个板子是错的,害的我签到题都没过,一直WA,通过率80%,第二天上午补题时发现全排列公式错了,好气啊
代码:
#include<bits/stdc++.h>using namespace std;typedef long long LL;int a[11];int f, ans;queue<int> s[2];void dfs(int l, int r){ if(l == r) { int k = 0; for(int i = 0; i < r; i++) k = k*10+a[i]; ans = max(ans, k); s[!f].push(k); //cout << k << endl; return ; } for(int i = l; i < r; i++) { swap(a[l], a[i]); dfs(l+1, r); swap(a[l], a[i]); }}int main(){ int n, x; scanf("%d", &n); f = 0; s[0].push(0); ans = 0; for(int i = 1; i <= n; i++) { scanf("%d", &x); while(!s[f].empty()) { int sum = s[f].front(); s[f].pop(); sum += x; int len = 0; while(sum) { a[len++] = sum % 10; sum /= 10; } dfs(0, len); } f = !f; } printf("%d\n", ans); return 0;}
- Wannafly模拟赛5 D Aria(全排列)
- Wannafly模拟赛5 D Aria 全排列
- Wannafly模拟赛5 ASplit
- Wannafly模拟赛5 DAria
- Wannafly模拟赛4 D Fancy Signal Translate(字典树)
- Wannafly模拟赛5 待更新 题解
- Wannafly模拟赛5 A split 二分
- Wannafly模拟赛5 A Split
- Wannafly模拟赛5 A Split 【贪心】
- Wannafly模拟赛5 F Course
- Wannafly 模拟赛5 E 思维+数论
- Wannafly模拟赛5 A题
- Wannafly模拟赛 树(dp)
- 10.9wannafly模拟赛
- Wannafly模拟赛4
- Wannafly模拟赛3
- D-Aria
- Wannafly模拟赛3 题解
- 安装VMware以及在虚拟机上安装CentOS
- 【boolan c++】 带有指针成员的class
- 《汇编语言》(王爽)检测点2.2
- Bloom Filter原理介绍
- Xor Sum (01字典树)基础的字典树题目
- Wannafly模拟赛5 D Aria(全排列)
- Maximal GCD CodeForces
- hdu 4857
- 高级面试题-String-StringBuilder-StringBuffer 的区别
- 2017CCPC秦皇岛 M:Safest Buildings
- 2017.11.5总结
- 习题6.1
- 类的声明与定义
- 常见错误解决方式