Home
Problem
Status
Contest
Workbook
User
Group
Forum
Register
Login
{"managingGroups":{},"author":"hhc0716","updateTime":1702454394000,"title":"20231213","dislikeCnt":0,"content":"# A CF1873A\n\n打表。\n\n# B CF1873E\n**插句话:我宣布,第一届最水 CF Div4 E 题奖评为 CF1873E!**\n\n二分答案。\n\n# C CF1873B\n\n暴力。\n\n# D CF1873C\n\n**插句话:我宣布,第一届最水 CF Div4 C 题奖评为 CF1873C!**\n\n暴力。\n\n# E CF1859C\n\n**插句话:我宣布,第一届最水 CF Div2 C 题奖评为 CF1859C!**\n\n```cpp\n#include \u003cbits/stdc++.h\u003e\nusing namespace std;\n\nint t, n, arr[255], a[255];\n\nint main() {\n for(cin \u003e\u003e t; t--; ) {\n cin \u003e\u003e n;\n iota(arr + 1, arr + n + 1, 1);\n int ans \u003d -1;\n do {\n int sum \u003d 0, ma \u003d -1;\n for(int i \u003d 1; i \u003c\u003d n; i++) {\n sum +\u003d arr[i] * i, ma \u003d max(ma, arr[i] * i);\n }\n ans \u003d max(ans, sum - ma);\n if(ans \u003d\u003d sum - ma) {\n for(int i \u003d 1; i \u003c\u003d n; i++) {\n a[i] \u003d arr[i];\n }\n }\n }while(next_permutation(arr + 1, arr + n + 1));\n cout \u003c\u003c ans \u003c\u003c \u0027\\n\u0027;\n for(int i \u003d 1; i \u003c\u003d n; i++) {\n cout \u003c\u003c a[i] \u003c\u003c \u0027 \u0027;\n }\n cout \u003c\u003c \u0027\\n\u0027;\n }\n return 0;\n}\n```\n\n上面是 tlE,这个程序帮我找到了答案:\n\n答案排列必然是字典序最小的排列在进行刚好一次后缀反转后得到的排列。\n\n枚举即可。\n\n# F CF1873D\n\n**插句话:我宣布,第一届最水 CF Div4 D 题奖评为 CF1873D!**\n\n贪心。\n\n# G CF1859B\n\n个人认为比 CF1859C 难。\n\n不过还是能评奖。\n\n走献祭流,直接取出每一个数组中最小的元素,然后枚举要将这些数加入到那个数组里面去。","threadId":177996,"likeCnt":0,"createTime":1702453731000,"isWorkbook":false,"viewCnt":97,"openness":2,"fav":false,"id":4383,"trustable":false}