2 条题解
-
2
#include <bits/stdc++.h> #define ll long long using namespace std; int n, q; int a[1005]; int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> n >> q; for (int i = 1; i <= n; i++) cin >> a[i]; sort(a + 1, a + n + 1); while (q--) { int len; string s; cin >> len >> s; reverse(s.begin(), s.end()); bool flag = 1; for (int i = 1; i <= n; i++) { // 检查 a[i] 的后缀有没有 s string t = to_string(a[i]); // 检查 t 的后缀是不是 s reverse(t.begin(), t.end()); // 检查 t 的前缀是不是 s if (t.find(s) == 0) { flag = 0; cout << a[i] << "\n"; break; } } if (flag) cout << "-1\n"; } return 0; }
-
1
思路 图书编码是个数,而且求的是末尾,很容易让人想到通过取模拿余数。
#include <bits/stdc++.h> using namespace std; int n,q; int a[1005]; struct T{ int x; int k; int id; }s[1005]; int main(){ cin>>n>>q; for (int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+n+1);//排序找最先 for (int i=1;i<=q;i++){ int u=1; cin>>s[i].x>>s[i].id; for (int j=1;j<=s[i].x;j++){ u*=10;//计算取模的数 } s[i].k=u; } for (int i=1;i<=q;i++){ bool flag=false; for (int j=1;j<=n;j++){ if (flag==false){ if (a[j]%s[i].k==s[i].id){//计算余数 cout<<a[j]<<endl; flag=true; } } } if (flag==false){ cout<<-1<<endl; } } return 0; }
- 1
信息
- ID
- 1382
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 86
- 已通过
- 50
- 上传者