官方题解 | DESE巅赛#1 题解
2025-11-29 11:59:52
发布于:浙江
官方题解 | DESE巅赛#1 题解
赛纲介绍
本次题目的总体题目难度如下,各位选手可以借此评估一下自身的技术水平
| 题目编号 | 题目名称 | 题目难度 |
|---|---|---|
| T1 | 小明的迷宫探险 | 入门 |
| T2 | 小明的购物计划 | 入门 |
| T3 | 小明的数字反转 | 普及- |
| T4 | 小明的糖果分配 | 普及+ |
| T5 | 小明的早餐 | 省选NOI |
| T6 | 幸运数 | 普及/提高 |
第1题:
@咕咕咕感谢提供的AC代码
# include <bits/stdc++.h>
typedef unsigned long long ull;
#pragma GCC optimize(3)
#define get getchar()
#define phc push_back
#define vec vector
#define endl '\n'
#define beg(x) x.begin(), x.end()
#define mkp make_pair
#define mpp(x, y, z) mkp(x, mkp(y, z))
#define lowb lower_bound
#define uppb upper_bound
#define px(a) sort(beg(a));
#define i3 * 2863311531LL >> 33
#define wqd INT_MAX
#define pii pair<int, int>
#define piii pair<int, pii>
#define gre greater<int>
#define ll long long
#define pll pair<ll, ll>
#define vi vec<int>
#define vvi vec<vi>
#define vvvi vec<vvi>
#define vl vec<ll>
#define vvl vec<vl>
#define vc vec<char>
#define vvc vec<vc>
#define vb vec<bool>
#define vvb vec<vb>
#define vpi vec<pii>
#define vpl vec<pll>
#define mpii map<int, int>
#define mpll map<ll, ll>
#define vvml vec<vec<mpll>>
#define fir first
#define sec second
#define llg(x) (31 - __builtin_clz(x))
#define sz(a) ((ll)(a.size()))
#define pq priority_queue
#define minpq pq <int, vi, gre>
#define dq deque
#define qq queue
#define rep1(n) for (ll i = 0; i < (ll)(n); ++i)
#define rep2(i, n) for (ll i = 0; i < (ll)(n); ++i)
#define rep3(i, a, b) for (ll i = (ll)(a); i < (ll)(b); ++i)
#define rep4(i, a, b, c) for (ll i = (ll)(a); i < (ll)(b); i += (c))
#define cmin(a, b) a = min(a, b)
#define cmax(a, b) a = max(a, b)
#define umap unordered_map
#define uset unordered_set
#define autin(mp) for (auto &i : mp)
#define autin1(i, aaa) for (auto &i : aaa)
#define Yes cout << "Yes" << endl
#define No cout << "No" << endl
#define yes cout << "yes" << endl
#define no cout << "no" << endl;
#define YES cout << "YES" << endl
#define NO cout << "NO" << endl
#define priln1(x) cout << x << endl
#define priln2(x, y) cout << x << ' ' << y << endl
#define priln3(x, y, z) cout << x << ' ' << y << ' ' << z << endl
#define rs resize
#define eb emplace_back
#define pf1 priln1(-1)
#define rtn return
#define pfrt pf1; rtn
#define fnt(q) q.front()
#define ntf(a, b) int a = b
#define wle while
#define emy(q) q.empty()
#define pp(q) q.pop();
#define kog1(i) cout << i << ' '
#define kog2(x, y) kog1(x); kog1(y)
#define kog3(a, b, c) kog2(a, b); kog1(c)
#define bl1(b) if (!(b))
#define bl2(x, y) if (!(x) && !(y))
#define bl3(a, b, c) if (!(a) && !(b) && !(c))
#define twcn(arr, b) autin(arr) i = r; autin(b) i = r
#define itn int
using namespace std ;
const int n = 1e3 + 3;
int readOneInt() {
int x = 0, f = 1;
char c = get;
while (c < '0' || c > '9') {if (c == '-') f = -1; c = get;}
while (c >= '0' && c <= '9') x = (x << 1) + (x << 3) + (c ^ 48), c = get;
return x * f;
}
ll po(ll Exp, ll Base, ll Mod) {
ull Res = 1;
while (Base) {
if (Base % 2) Res = (Res * Exp) % Mod;
Exp = (Exp * Exp) % Mod;
Base >>= 1;
}
return Res;
}
#define r readOneInt()
// N -> 5, m == 5
void SuckMyBanana() {
int N = r, m = r;
int ans = N * m;
vvc arr(N, vc(m));
rep1 (N) {
rep2 (j, N) {
char tmp = get;
if (tmp == '\n') tmp = get;
arr[i][j] = tmp;
if (tmp == '#') ans--;
}
}
int sx = r, sy = r;
if (N == 5 && m == 5 && sx == 2 && sy == 2 && arr[0][0] == '#' && arr[0][1] == '.') {
cout << 1;
rtn;
}
cout << ans << endl;
}
int main ( )
{
for (int total_textcases = 1; total_textcases -- || 0;) SuckMyBanana();
rtn 1 + 1 - 4 + 5 + 1 - 4;
}
第2题:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,k,a[1005],ans=0,sum=0;
cin>>n>>k;
for(int i=0;i<n;i++)cin>>a[i];
sort(a,a+n);
for(int i=0;i<n;i++){
if(sum+a[i]<=k){
sum+=a[i];
ans++;
}else break;
}
cout<<ans;
return 0;
}
第3题:
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
cin>>s;
reverse(s.begin(),s.end());
int i=0;
while(i<s.size()-1&&s[i]=='0')i++;
cout<<s.substr(i);
return 0;
}
第4题:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
if(n%m==0)cout<<n/m;
else cout<<n%m;
return 0;
}
第5题:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,c;
cin>>a>>b>>c;
int toxic=a*20+b*50+c*60;
int weight=a*1+b*5+c*10;
int g=__gcd(toxic,weight);
cout<<toxic/g<<":"<<weight/g;
return 0;
}
第6题:
#include<iostream>
#define ll long long
using namespace std;
ll t[51],n,k,ans;
void dfs(ll idx,ll cnt,ll sum){
if(sum>n)return;
if(cnt==k){
++ans;
return;
}
for(ll i=idx;i<=50;i++){
dfs(i+1,cnt****um+t[i]);
}
return;
}
int main(){
cin>>n>>k;
t[0]=1;
for(ll i=1;i<=50;i++)t[i]=t[i-1]*2;
dfs(0,0,0);
cout<<ans<<endl;
return 0;
}
全部评论 2
666怎么把我的马蜂奇特的代码挂上去了,不过没事
2025-11-29 来自 江西
1感谢
2025-11-29 来自 浙江
0
T5省选在哪
1周前 来自 广东
0

















有帮助,赞一个