当前位置:网站首页>Résultats D - exam de Qinhuangdao au cours des 20 dernières années
Résultats D - exam de Qinhuangdao au cours des 20 dernières années
2022-06-29 04:39:00 【Int i】
Le professeur Alex prépare son examen pour ses étudiants.
SerannLes étudiants qui ont passé cet examen.Si un étudiantiiAvoir un bon état d'esprit,Il est/Elle fera du bon travail et gagneraa_iaiPoints.Sinon,Il est/Elle aura l'aéroport international de PékinbiPoints.Il est donc impossible de prévoir les résultats de l'examen.Supposons que la note maximale de ces étudiants soitxxPoints.Les élèves dont les notes ne sont pas inférieures àx \cdot p\%x⋅p%Je passerai l'examen.
AlexIl faut savoir quel est le nombre maximum d'étudiants qui peuvent réussir l'examen dans tous les cas.Pouvez - vous répondre à sa question?
Contributions
La première ligne saisie indique le nombre de cas d'essai,T\ (1Une fois10^3)T (1≤T≤5×103). TTLes cas d'essai sont les suivants:.
Pour chaque cas d'essai,La première ligne contient deux entiersn \(1 \ le n \ le 2 \Une fois10^5)n (1≤n≤2×105)Etp\ (1 \le p \le 100)p (1≤p≤100),Où est - il?nnC'est le nombre d'étudiantsp\%p%C'est l'échelle.
Chacun des éléments suivantsnnlinesContient deux entiers10^9Université d'Arlesai,bi (1≤bi≤ai≤109),Scores représentatifs des élèvesii.
TotalnnDans tous les cas d'essai,Pas plus de5Une fois10^55×105.
Produits
Pour chaque cas d'essai,La ligne de sortie contient“CAS#x: y“,Où?\texttt{x}xEst le numéro de cas d'essai(De11),Et\texttt{y}yEst le nombre maximum d'étudiants.
Échantillons1
| Entrée de la réplication | Copie de sortie |
|---|---|
2 2 50 2 1 5 1 5 60 8 5 9 3 14 2 10 8 7 6 | Case #1: 2 Case #2: 4 |
Titre:n Un étudiant a une meilleure note , Ou un score inférieur . Pas moins que la note maximale *(m/100)Le plus grand nombre
Idées: Regardez les autres prendre des règles , Différence quoi , Mais je ne comprends pas , Heureusement que mon code est passé
Personnellement, je pense que c'est mieux compris .
Trier d'abord la structure , Selon les notes élevées ( Même chose pour les notes basses et élevées )Trier, Le deuxième exemple est le suivant
struct Node
{
int x,y;
bool operator<(const Node temp)const{
if(x!=temp.x) return x>temp.x;
return y>temp.y;
}
}x[M];14 2 10 8 9 3 8 5 7 6
Si la dernière valeur maximale est 14, Alors tout le reste doit être le plus grand , Recherche binaire combien de tableaux ascendants ne sont pas inférieurs à 14*(60/100.0)C'est simple
Si la dernière valeur maximale est 10, Donc ce qui est en dessous doit être le plus grand ,Le premier n'est pas14,Ça doit être2,Parce que14S'il existe10 Ce ne sera pas le plus grand .Alors la réponse est Voici la plus grande réponse + La plus petite réponse ci - dessus .Parce que La plus petite réponse ci - dessus Il n'y a pas d'ordre., Et la file d'attente prioritaire ne peut pas faire de recherche binaire ,Peut être utilisévectorAjouter+Recherche binaire, Les deux premières fonctions du code ci - dessous sont .
Et pour les données :
2 50 100 80 7 6
7Et6 Ce ne sera jamais le maximum , Réaliser cet arrêt Il suffit d'enregistrer le plus grand yPourmaxxy,if(x[i].x<maxxy) break;C'est tout.
Attention au plus gros maxxy C'est peut - être le plus grand , Il faut enfin recalculer les résultats ,Par exemple,100 80,7 6Ces données,maxxy=80.
#include<bits/stdc++.h>
using namespace std;
#define fo(a,b) for(int i=a;i<=b;i++)
#define inf 0x3f3f3f3f
#define ll long long
const ll mod=998244353;
#define EXP 1e-6
#define M 1000005
int T,n,m,maxxy;
int a[M];
struct Node
{
int x,y;
bool operator<(const Node temp)const{
if(x!=temp.x) return x>temp.x;
return y>temp.y;
}
}x[M];
vector<int>s;
void update(int q){ // Joignez - vous en temps de file d'attente prioritaire
maxxy=max(maxxy,q);
vector<int>::iterator last=lower_bound(s.begin(),s.end(),q);
s.insert(last,q);
}
int solve(double a){ //Recherche binaire
if(s.size()==0) return 0;
return lower_bound(s.begin(),s.end(),a)-s.begin();
}
signed main()
{
scanf("%d",&T);
for(int k=1;k<=T;k++){
int maxx=0;
maxxy=0;
s.clear();
scanf("%d%d",&n,&m);
fo(1,n) scanf("%d%d",&x[i].x,&x[i].y);
sort(x+1,x+n+1);
fo(1,n) a[i]=x[n-i+1].x;
for(int i=1;i<=n;i++){
if(x[i].x<maxxy) break; // Si la note supérieure ne peut pas être la valeur maximale
double r=x[i].x*(m/100.0);
int sum=(n-i)-(lower_bound(a+1,a+n+1-i,r)-a)+2; //En bas.
sum+=i-solve(r)-1; //Au - dessus
maxx=max(maxx,sum);
update(x[i].y);
}
double r=maxxy*(m/100.0);
int sum=0;
for(int i=1;i<=n;i++){ //maxxy Réponse au maximum
sum+=(x[i].x>maxxy?(x[i].y>=r):(x[i].x>=r));
}
maxx=max(maxx,sum);
printf("Case #%d: %d\n",k,maxx);
}
return 0;
}
/*
Quelques données sujettes aux erreurs :
1
3 50
100 6
5 4
6 4
:3
1
2 50
5 5
2 2
:2
1
3 50
100 6
5 4
5 4
:3
*/
边栏推荐
猜你喜欢
随机推荐
Research Report on the overall scale, major manufacturers, major regions, products and application segments of 5g modules of the Internet of things in the global market in 2022
EEG signal processing - wavelet transform series
1015 德才论
How to quickly change the database name in MySQL
How to change the password of mysql8 created by docker
What are the circular statements of MySQL
[code random entry - hash table] T15, sum of three numbers - double pointer + sort
1018 hammer scissors cloth
1016 part a+b
泰克TDS3054B示波器技术指标
The virtual machine MySQL cannot be connected to the local computer
CTO and programmer were both sentenced because the crawler was out of control!
[C language] start a thread
Remediation for Unsafe Cryptographic Encryption
1017 A除以B分
ECS 四 Sync Point、Write Group、Version Number
Project development culture
Template method pattern
[Verilog quick start of Niuke network question brushing series] ~ asynchronous reset Series T trigger
ROS URDF model is parsed into KDL tree









