当前位置:网站首页>C langue OJ obtenir PE, ACM démarrer OJ
C langue OJ obtenir PE, ACM démarrer OJ
2022-07-05 19:55:00 【Chef de station du programmeur de pile complète】
Bonjour tout le monde,On se revoit,Je suis ton ami, le chef de l'armée..
Ce qu'on appelleOJ,Comme son nom l'indiqueOnline Judge,Un programme soumis par un utilisateurOnline JudgeL'exécution sous le système sera strictement limitée,Y compris les limites de temps d'exécution,Limites d'utilisation de la mémoire et de sécurité, etc..Les résultats de l'exécution du programme utilisateur serontOnline JudgeSystème snap and Save,Puis il est transmis à un arbitre..L'arbitre peut comparer les données de sortie du programme utilisateur avec les échantillons de sortie standard,Ou vérifier si les données de sortie du programme utilisateur répondent à certaines conditions logiques.Enfin, le système renvoie un état à l'utilisateur:Adoption(Accepted,AC)、Mauvaise réponse(Wrong Answer,WA)、Temps mort(Time Limit Exceed,TLE)、Dépassement de la limite de sortie(Output Limit Exceed,OLE)、Hypermémoire(Memory Limit Exceed,MLE)、Erreur d'exécution(Runtime Error,RE)、Mauvais format(Presentation Error,PE)、Ou impossible de compiler(Compile Error,CE),Et renvoie la mémoire utilisée par le programme、Informations telles que le temps d'exécution.
Je ne connais peut - être pas la définition.OJ,Recommandé par hangdianACM1000,Nous pouvons renforcer notre compréhensionOJMaîtrise des entrées et des sorties.
HangdianACMSite officiel:http://acm.hdu.edu.cn/
Ensuite, il y a OJJugement:
Au débutOJHeure, Il y a un problème avec les données d'entrée et de sortie ,OJ Les données d'entrée et de sortie ne sont pas les mêmes que celles d'un programme d'écriture normal. .Pourquoi? Est - ce différent , Il s'agit de la façon dont le système d'évaluation juge que la procédure que vous soumettez est correcte. . En fait, le système d'évaluation est l'entrée standard du programme Les données de sortie sont placées dans un fichier texte , Le programme que vous soumettez sera compilé en premier ,Et courir, Lire les données du fichier d'entrée , Et perdre le résultat Sortir dans un fichier texte , Le système d'évaluation compare ensuite le fichier de sortie standard avec le fichier de sortie des résultats d'exécution du programme que vous soumettez. , Et donc Déterminer si la procédure que vous avez soumise est correcte ou non .Comme c'est le cas, L'exactitude des procédures soumises dépend des données d'essai du système. , Pas maintenant Peut simplement utiliser un ensemble de données d'essai pour déterminer l'exactitude du programme , Il faut beaucoup de données d'essai , Le système d'évaluation de la norme du concours international de programmation est le suivant: PC2, Il ne supporte qu'un seul sujet, un seul fichier de données d'entrée 、 Un fichier de données de sortie . Donc vous devez mettre plusieurs ensembles de données d'essai dans un seul article À l'intérieur. , Le programme soumis doit produire des résultats à partir de plusieurs ensembles de données d'entrée dans ce fichier. .
Un.、Entrée: 1、 Il n'y a qu'un seul ensemble de données d'essai , C'est le moment le plus simple . CCode de la langue:
#include
int main()
{ int a,b;
scanf(“%d %d”,&a, &b);
printf(“%d\n”,a+b);
return0;
}
C++Code de la langue:
1 #include
2 usingnamespace std;
3 int main()
4 {
5 int a,b;
6 cin >> a >> b;
7 cout <
8 return0;
9 }
2、Il y a plusieurs ensembles de données d'essai, Jusqu'à la fin du fichier d'entrée ,Il faut utiliserwhile(scanf(“%d”,&n)!=EOF)Ouwhile(~scanf(“%d”,&n))Ouwhile (cin>>n).
CCode de la langue:
1 #include
2 int main()
3 {
4 int a,b;
5 while(scanf(“%d %d”,&a, &b) != EOF)
6 printf(“%d\n”,a+b);
7 return0;
8 }
Description:scanf La valeur de retour de la fonction est le nombre de variables lues ,Par exemple::scanf( “%d %d”, &a, &b ); S'il n'y a qu'une seule entrée entière ,Retour La valeur de retour est 1, S'il y a deux entrées entières ,La valeur de retour est2,S'il n'y en a pas,La valeur de retour est-1.EOFEst une constante prédéfinie,Attendez.
À-1.
C++Code de la langue:
1 #include
2 usingnamespace std;
3 int main()
4 {
5 int a,b;
6 while(cin >> a >> b)
7 cout <
8 return0;
9 }
3、 Entrez un N,Et puisNDonnées de groupe. CCode de la langue:
1 #include
2 int main()
3 {
4 int n,i;
5 int a,b;
6 scanf(“%d”,&n);
7 for(i=0;i
8 {
9 scanf(“%d%d”,&a,&b);
10 printf(“%d\n”,a+b);
11 }
12 return0;
13 }
Ou
1 #include
2 int main()
3 {
4 int n, i;
5 int a, b;
6 scanf(“%d”, &n);
7 while (n–)
8 {
9 scanf(“%d%d”, &a, &b);
10 printf(“%d\n”, a + b);
11 }
12 return0;
13 }
C++Code:
1 #include usingnamespace std;
2 int main()
3 {
4 int a, b, n;
5 cin >> n;
6 while (n–)
7 {
8 cout <
9 }
10 return0;
11 }
4、 L'entrée n'indique pas le nombre d'ensembles de données disponibles , Mais avec une entrée spéciale comme drapeau de fin .Oui.0 0 Fin de l'entrée du Représentant. CCode de la langue:
#include
int main()
{
int a,b;
while(scanf(“%d %d”,&a, &b) &&(a||b))
printf(“%d\n”,a+b);
}
C++Code de la langue:
1 #include
2 usingnamespace std;
3 int main()
4 {
5 int a ,b;
6 while(cin>>a>>b&&(a||b))
7 {
8 cout<
9 }
10 return0;
11 }
5、 Il y a aussi une combinaison des premiers . CCode de la langue:
1 #include
2 int main()
3 {
4 int n,sum,a;
5 while(scanf(“%d”,&n) && n)
6 {
7 sum=0;
8 while(n–)
9 {
10 scanf(“%d”,&a);
11 sum+=a;
12 }
13 printf(“%d\n”,sum);
14 return 0;
15 }
C++Code de la langue:
1 #include
2 usingnamespace std;
3 int main()
4 {
5 int n,sum,a;
6 while(cin>>n&&n)
7 {
8 sum=0;
9 while(n–)
10 {
11 cin>>a;
12 sum+=a;
13 }
14 cout<
15 }
16 return0;
17 }
L'entrée est une chaîne d'une ligne entière ,CSyntaxe:
char buf[20];
gets(buf);
Si elle est utiliséestring buf;Pour sauver:
getline( cin , buf );
Si elle est utiliséechar buf[ 255 ]; Pour sauver:
cin.getline( buf, 255 );
scanf(“ %s%s”,str1,str2), Séparer les chaînes par un ou plusieurs espaces ;
Si utiliségetsFonctions,Devrait êtregets(str1); gets(str2); Les chaînes sont séparées par un caractère de retour de chariot .
En général, Accepter les caractères courts avec scanfFonctions, Accepter de longs caractères pour getsFonctions.
Etgetchar La fonction n'accepte qu'un seul caractère à la fois ,Souventc=getchar() Comme ça .
getline C'est une fonction, Il accepte les caractères entrés par l'utilisateur , Jusqu'à ce que le nombre spécifié ait été atteint , Ou l'utilisateur a entré un caractère spécifique .C'est
Formulaire de déclaration de fonction pour (Prototype de fonction)Comme suit:
istream& getline(char line[], int size, char endchar = ‘\n’);
Quel que soit son type de retour , Pour se soucier de ses trois paramètres
char line[]: Est un tableau de caractères, L'entrée de l'utilisateur est stockée dans le tableau .
int size : Accepter un maximum de quelques caractères ?Plus d'utilisateurs quesize Aucune entrée ne sera acceptée .
char endchar :Quand l'utilisateur entreendchar Lorsque le caractère spécifié est ,Fin automatique. La valeur par défaut est entrée .
Combiner les deux derniers paramètres ,getlineFacile à réaliser: L'utilisateur peut saisir jusqu'à un nombre spécifié de caractères ,Si plus de, Ne spécifiez que le nombre avant Les caractères sont valides ,S'il n'y a pas plus de, L'utilisateur peut mettre fin à l'entrée en entrant .
char name[4];cin.getline(name,4,’\n’);
Parce que endchar La valeur par défaut est déjà ‘\n’, Donc la ligne suivante peut aussi être écrite comme :
cin.getline(name,4);
Enfin, il convient de noter que,C++ Les flux d'entrée et de sortie de ,Mais le rapport de vitesseCC'est beaucoup plus lent.. Quand les entrées et les sorties sont énormes ,Avec C++ Il est probable que le temps d'arrêt ,Devrait être adoptéCEntrée / sortie de.
2.、Produits:
La sortie a des exigences de formatage différentes , Il arrive souvent qu'on ne fasse pas attention “Presentation Error”,EtPC2 Trop souvent, il n'y a pas de jugement pour perdre Erreur de format de sortie , Juste un simple verdict ”Wrong Answer”, Il est donc important de noter le format de sortie .
CCode de la langue:
1 #include
2 int main()
3 //Prends ça.mainLa fonction est définie commeintType
4 {
5 int a,b;
6 while(scanf(“%d %d”,&a, &b) != EOF)
7 printf(“%d\n”,a+b);
8 return0;
9 }
Chaque ensemble de résultats de sortie se termine par une nouvelle ligne .
2、 Un groupe après l'autre , Il y a une ligne vide derrière chaque groupe .
CCode de la langue:
1 #include
2 int main()
3 {
4 int a, b;
5 while (scanf(“%d%d”, &a, &b) != EOF)
6 printf(“%d\n\n”, a + b);
7 return0;
8 }
Il suffit de sortir deux nouvelles lignes après chaque sortie d'un ensemble de résultats .
3、 Un groupe après l'autre , Il y a une ligne vide entre deux groupes , Attention à la séparation de l'ancien .
1 #include
2 int main()
3 {
4 int n,m,sum,a;
5 int i;
6 scanf(“%d”,&n);
7 for (i =0; i
8 {
9 scanf(“%d”,&m);
10 sum =0;
11 while (m–)
12 {
13 scanf(“%d”,&a);
14 sum +=a;
15 }
16 printf(“%d\n”,sum);
17 if (i != n-1)
18 printf(“\n”);
19 }
20 return0;
21 }
Déterminer si le dernier ensemble de données d'essai est atteint , Si ce n'est pas le dernier ensemble de données d'essai, une nouvelle ligne est sortie.
Éditeur:Programmeur de pile complète,Veuillez indiquer la source de la réimpression.:https://javaforall.cn/150009.htmlLien vers le texte original:https://javaforall.cn
边栏推荐
- Xaas trap: all things serve (possible) is not what it really needs
- 信息/数据
- redis集群模拟消息队列
- Win10 x64环境下基于VS2017和cmake-gui配置使用zxing以及opencv,并实现data metrix码的简单检测
- 随机数生成的四种方法|Random|Math|ThreadLocalRandom|SecurityRandom
- Let's talk about threadlocalinsecurerandom
- third-party dynamic library (libcudnn.so) that Paddle depends on is not configured correctl
- 通过POI追加数据到excel中小案例
- Go language | 02 for loop and the use of common functions
- leetcode刷题:二叉树11(平衡二叉树)
猜你喜欢
Go language | 02 for loop and the use of common functions
What is the core value of testing?
S7-200smart uses V90 Modbus communication control library to control the specific methods and steps of V90 servo
How to safely and quickly migrate from CentOS to openeuler
webuploader文件上传 拖拽上传 进度监听 类型控制 上传结果监听控件
Using repositoryprovider to simplify the value passing of parent-child components
软件测试工程师是做什么的?待遇前景怎么样?
Based on vs2017 and cmake GUI configuration, zxing and opencv are used in win10 x64 environment, and simple detection of data matrix code is realized
third-party dynamic library (libcudnn.so) that Paddle depends on is not configured correctl
Win10 x64环境下基于VS2017和cmake-gui配置使用zxing以及opencv,并实现data metrix码的简单检测
随机推荐
S7-200smart uses V90 Modbus communication control library to control the specific methods and steps of V90 servo
How about testing outsourcing companies?
leetcode刷题:二叉树17(从中序与后序遍历序列构造二叉树)
leetcode刷题:二叉树18(最大二叉树)
id选择器和类选择器的区别
What are general items
What does software testing do? What are the requirements for learning?
leetcode刷题:二叉树16(路径总和)
Debezium series: idea integrates lexical and grammatical analysis ANTLR, and check the DDL, DML and other statements supported by debezium
【无标题】
95后阿里P7晒出工资单:狠补了这个,真香...
How to safely and quickly migrate from CentOS to openeuler
浮动元素与父级、兄弟盒子的关系
Debezium series: modify the source code to support UNIX_ timestamp() as DEFAULT value
The difference between ID selector and class selector
C#应用程序界面开发基础——窗体控制(5)——分组类控件
[Collection - industry solutions] how to build a high-performance data acceleration and data editing platform
Multi branch structure
aggregate
Add data to excel small and medium-sized cases through poi