手速场 推荐做
A. Do Not Be Distracted!(字符打标记)
题意:
- A. Do Not Be Distracted!(字符打标记)
-
- 题意:
- 思路:
- code:
- B - Ordinary Numbers(数论/预处理/思维)
-
- 题意:
- 思路(推公式):
- code1:
- 思路(思维):
- code2:
- 思路(预处理)
- code:
- C. Not Adjacent Matrix(构造+思维)
-
- 题意:
- 思路:
- code:
- D - Same Differences(思维+变换公式+map处理)
-
- 题意
- 思路
- code:
- E - Arranging The Sheep(中位数)
-
- 题意
- 思路
- code:
- F1.Guess the K-th Zero (Easy version)(交互题 不补了)
- F2.Guess the K-th Zero (Hard version)(树状数组或分块) (待补)
- G.To Go Or Not To Go?(待补)
输入:
出现过的字符 除了在他出现的那个连续区间可以重复出现,后面都不可出现 输出 如果后面没出现则则输出"YES" 否则"NO" 条件: 都是大写字母
思路:打标记判断,(连续区间这里卡了我一下,但是我还是硬着头皮(s[i] == s[i-1]))
code:#include using namespace std; int st[26]; int main() { int t; cin>>t; while (t -- ) { int n; cin>>n; memset(st,0,sizeof st); string s; cin>>s; bool flag = false; for(int i=0;i<n;i++) { if(!st[s[i]-'A'] ) { st[s[i]-'A']= 1; } else { if(s[i] == s[i-1]) continue; else { flag = true; cout<<"NO"<<endl; break; } } } if(!flag) cout<<"YES"<<endl; } return 0; }
B - Ordinary Numbers(数论/预处理/思维)
题意:
输入 输入一个t和多个n 条件 普通数字即 每个数字各个位相同 输出 输出1-n中的普通数字
思路(推公式):因为范围1e9,所以推公式,先打1e5的表出思路,后面推公式 公式如下 ans = 9*(位数-1) + (最大位数 或者 最大位数-1)
code1:#include using namespace std; typedef long long ll ; int main() { int t; cin>>t; while(t -- ) { int n; cin>>n; if(n<10) cout<<n<<endl; else { int ws = 0; int temp = n; int maxx = 0; while(temp!= 0) { maxx = temp; ws++; temp/=10; } int ans = 0; ans = 9*(ws-1); ll mid = 0 ; for(int i=1;i<=ws;i++) { mid+=maxx; mid*=10; } mid/=10; // cout<
关注
打赏
