廣州公司注冊貼吧關(guān)鍵詞排名優(yōu)化報價
B這個題目在20分鐘的時候發(fā)現(xiàn)了取模的規(guī)律,但是在寫法上我竟然猶豫了,這影響了我后面題目的心態(tài) 過于可惜了 但是沒關(guān)系,現(xiàn)在不會,之后就會寫了
這里強調(diào)一下,sort不會改變原先的順序,就是說如果兩個相等的數(shù)字,不會被調(diào)順序,我們盡可能不要去改變sort中的排序,這里加上一個負號就變成了從小到大排序
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
#define int long long
const int N = 3e5 + 10;int a[N];signed main()
{int t;cin >> t;while(t --){int n,k;cin >> n >> k;vector<pair<int,int>> v;for(int i = 1;i <= n;i ++){cin >> a[i];a[i] %= k;if(a[i] == 0) cout << i << " ";else v.push_back({-a[i],i});} sort(v.begin(),v.end());for(auto c : v) cout << c.second << " ";cout << endl;}}
C
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e5+10;
ll l[N],r[N];
void work(){
int n,m;
string s;
cin>>n>>m;
cin>>s;
s=’ '+s;
l[0]=0;r[n+1]=n+1;
// 101100
for(int i=1;i<=n;i++)
if(s[i]‘1’) l[i]=l[i-1];
else l[i]=i;
for(int i=n;i>=1;i–)
if(s[i]‘1’) r[i]=i;
else r[i]=r[i+1];
set<pair<ll,ll>> se;
int x,y;
while(m–){
cin>>x>>y;
x=r[x];
y=l[y];
if(x>=y) x=y=0;
se.insert({x,y});
}
printf(“%d\n”,se.size());
}
int main(){
int t;
cin>>t;
while(t–)
work();
return 0;
}