CF 题目集锦 PART 5 #266 div 2 E_html/css_WEB-ITnose
【原题】
E. Information Graph
time limit per test
1 second
memory limit per test
512 megabytes
input
standard input
output
standard output
There are n employees working in company "X" (let's number them from 1 to n for convenience). Initially the employees didn't have any relationships among each other. On each of m next days one of the following events took place:
Your task is to write a program that will, given the events, answer the queries of the described type. At that, it is guaranteed that throughout the whole working time the company didn't have cyclic dependencies.
Input
The first line contains two integers n and m (1?≤?n,?m?≤?105) ? the number of employees and the number of events.
Each of the next m lines contains the description of one event (the events are given in the chronological order). The first number of the line determines the type of event t (1?≤?t?≤?3).
It is guaranteed that the input has at least one query of the third type.
Output
For each query of the third type print "YES" if the employee signed the document package and "NO" otherwise. Print all the words without the quotes.
Sample test(s)
input
4 91 4 32 43 3 11 2 32 23 1 21 3 12 23 1 3
output
YESNOYES
【题意】意思看了半天~就是有N个人,M个操作。每次操作有3种。
①把x的父亲置为y。
②从x开始发新的一份文件(是从1开始标号的)。从x开始,一直传递到最远的祖先。
③询问x号文件有没有落到y的手里。
【分析】即要简单地判断y是否是x的祖先。一开始有思维定势,觉得要求一遍LCA。但是后来想了想,可以直接用DFS序搞出同一棵树的深度,再用并查集维护是否在同一棵树上。代码很简单。
【代码】
#include<cstdio>#include<vector>#define N 200005#define pb push_backusing namespace std;vector<int>son[N],ask[N];struct arr{int x,y,id,opt;}a[N];int f[N],L[N],R[N],fa[N],ans[N];int i,n,m,now,num,id,tot,P,j;inline int get(int u){return f[u]==u?f[u]:f[u]=get(f[u]);}void dfs(int k){ L[k]=++tot; for (int i=0;i<son dfs r main scanf for if son ask f id="ask[now][j];num=a[id].x;">=R[a[i].x]) ans[id]=1; } }}</son></int></vector></cstdio>

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





Les macros de la souris attribuent une série d'opérations complexes aux boutons de la souris, qui peuvent être simplement comprises comme des paramètres de touches de raccourci de la souris. Après avoir cliqué sur le bouton pour définir la macro de la souris, vous pouvez effectuer certaines opérations qui sont généralement impossibles à effectuer. Alors, comment définir les macros de la souris lors de la lecture de CF ? Jetons un coup d'œil au tutoriel de paramétrage des macros de la souris Logitech cf. 1. Tout d'abord, installez le logiciel de jeu Logitech sur votre ordinateur, puis cliquez comme indiqué par la flèche dans l'image pour ouvrir l'interface de configuration des boutons personnalisés. Ensuite, vous devez sélectionner une touche, telle que la touche gauche, cliquer sur la petite flèche, puis sélectionner « Modifier la commande » dans le menu contextuel, afin de pouvoir ouvrir l'interface de configuration des macros de la touche gauche. 3. Cliquez ensuite sur le bouton, comme indiqué par la flèche rouge dans l'image, cliquez sur la zone de texte et entrez n'importe quelle clé. Notez que par exemple, A.

Méthode CSS pour réaliser qu'il manque un coin à un div : 1. Créez un exemple de fichier HTML et définissez un div ; 2. Définissez la couleur d'arrière-plan de la largeur et de la hauteur du div 3. Ajoutez une pseudo-classe au div qui doit être supprimé ; un coin et définissez la pseudo-classe sur Utiliser la même couleur que la couleur d'arrière-plan, puis faites-la pivoter de 45 degrés, puis positionnez-la sur le coin qui doit être supprimé.

Préface Récemment, il existe un script de navigateur basé sur ChatGPTAPI sur GitHub, openai-translator. En peu de temps, l'étoile a atteint 12k. En plus de prendre en charge la traduction, elle prend également en charge les fonctions de polissage et de synthèse. -ins, il utilise également le packaging tauri. Si vous avez un client de bureau, outre le fait que tauri utilise la partie rust, la partie navigateur est encore relativement simple à implémenter. Aujourd'hui, nous allons l'implémenter manuellement. L'interface fournie par openAI, par exemple, nous pouvons copier le code suivant et lancer une requête dans la console du navigateur pour terminer la traduction //Exemple constOPENAI_API_KEY="s

La différence entre iframe et div est que iframe est principalement utilisé pour introduire du contenu externe, qui peut charger du contenu provenant d'autres sites Web ou diviser une page Web en plusieurs zones. Chaque zone a son propre contexte de navigation indépendant, tandis que div est principalement utilisé pour diviser et div. organiser le contenu. bloc pour la mise en page et le contrôle du style.

Le modèle de boîte div est un modèle utilisé pour la mise en page d'une page Web. Il traite les éléments d'une page Web comme des boîtes rectangulaires. Ce modèle contient quatre parties : la zone de contenu, le remplissage, la bordure et la marge. L'avantage du modèle de boîte div est qu'il peut facilement contrôler la mise en page de la page Web et l'espacement entre les éléments. En ajustant la taille de la zone de contenu, la marge intérieure, la bordure et la marge extérieure, divers effets de mise en page peuvent être obtenus. Le modèle de boîte fournit également certaines propriétés et méthodes permettant de modifier dynamiquement le style et le comportement de la boîte via CSS et JavaScript.

Les différences sont les suivantes : 1. div est un élément de niveau bloc et span est un élément en ligne ; 2. div occupera automatiquement une ligne, tandis que span ne sera pas automatiquement renvoyé à la ligne ; 3. div est utilisé pour envelopper des structures et des mises en page plus volumineuses ; span est utilisé pour envelopper du texte ou d'autres éléments en ligne ; 4. div peut contenir d'autres éléments de niveau bloc et des éléments en ligne, et span peut contenir d'autres éléments en ligne.

Étapes de réglage : 1. Sur le bureau du système Win10, cliquez avec le bouton droit sur le bouton Démarrer et sélectionnez « Paramètres » ; 2. Cliquez sur l'icône « Système » ; 3. Cliquez sur l'élément de menu « Affichage » dans la barre latérale gauche ; Adaptateur d'affichage" sur le lien de raccourci Propriétés" ; 5. Cliquez sur le bouton " Liste de tous les modes " ; 6. Sélectionnez " 1024*768 True Color 60 Hz " parmi tous les modes ; 7. Cliquez sur l'étiquette " Moniteur " ci-dessus et définissez-le ; à 60 Hz ; 8. Cliquez sur « OK », puis redémarrez l'ordinateur.

Titre : jQuery Conseils : Maîtriser la méthode d'ajout de balises aux divs En développement web, nous rencontrons souvent des situations où nous devons ajouter dynamiquement des balises à la page. Vous pouvez utiliser jQuery pour manipuler facilement les éléments DOM et obtenir des fonctions d'ajout d'étiquettes rapides. Cet article expliquera comment utiliser jQuery pour ajouter des balises dans les divs et joindra des exemples de code spécifiques. 1. Travail de préparation Avant d'utiliser jQuery, vous devez introduire la bibliothèque jQuery dans la page. Vous pouvez l'introduire via un lien CDN ou la télécharger sur cette page.
