3 条题解
-
1
m,n=map(int,input().split()) la=list(map(int,input().split()) maxsize=m+1 lb=[-1]*maxsize;head=tail=0 ans=0 def f(lt,s,e,t,mx): flag=False while s!e: if t==lt[s]: flag=True break s=(s+1)%mx return flag for i in range(n): t=la[i] if not f(lb,hea,tail,t,maxsize): if
-
1
C++
😕
实测可行,但为什么两个测试点longer than standard output,这两个点应该过才对😕
#include <bits/stdc++.h> using namespace std; string t = "0123456789ABCDEF"; string change(int a) { int x; string s; while(a != 0) { x = a % 16; s = t[x] + s; a = a / 16; } if (s == "") return "00"; if (s.length() == 1) return "0" + s; else return s; } int main(){ string s; char x; int y; cin >> s >> x >> y; int j; if(x == 'R') j = 1; if(x == 'G') j = 3; if(x == 'B') j = 5; for(int i = 0; i <= 6; i ++) { if (i > 6) break; if(i == j) { cout << change(y); i += 2; } cout << s[i]; } return 0; }
-
0
我们需要两个模块:一是十进制转十六进制,二是十六进制转十进制(注意0的特判)
#include <bits/stdc++.h> using namespace std; const string thex = "0123456789ABCDEF"; int to_dec(string s) { return 16*thex.find(s[0])+thex.find(s[1]); } string to_hex(int n) { if(n == 0) return "00"; string t = ""; while(n) { t=thex[n%16]+t; n/=16; } return t; } int main() { string s; char x; int t; cin >> s >> x >> t; cout << "#"; if(x == 'R') { cout << to_hex(t); for(int i=3;i<s.size();i++) cout << s[i]; } else if(x == 'G') { for(int i=1;i<=2;i++) cout << s[i]; cout << to_hex(t); for(int i=5;i<s.size();i++) cout << s[i]; } else if(x == 'B') { for(int i=1;i<=4;i++) cout << s[i]; cout << to_hex(t); } return 0; }
- 1
信息
- ID
- 821
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 495
- 已通过
- 125
- 上传者