当前位置:网站首页>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
边栏推荐
- 大厂面试必备技能,2022Android不死我不倒
- [FAQ] summary of common causes and solutions of Huawei account service error 907135701
- Elk distributed log analysis system deployment (Huawei cloud)
- 【合集- 行业解决方案】如何搭建高性能的数据加速与数据编排平台
- leetcode刷题:二叉树16(路径总和)
- Multi branch structure
- Interviewer: what is the internal implementation of set data types in redis?
- 力扣 1200. 最小绝对差
- 深度學習 卷積神經網絡(CNN)基礎
- Postman core function analysis - parameterization and test report
猜你喜欢

Elk distributed log analysis system deployment (Huawei cloud)

再忙不能忘安全

Let's talk about threadlocalinsecurerandom

不愧是大佬,字节大牛耗时八个月又一力作
![[FAQ] summary of common causes and solutions of Huawei account service error 907135701](/img/1d/0e716533237c0e4463f5d6357395bd.png)
[FAQ] summary of common causes and solutions of Huawei account service error 907135701

2023年深圳市绿色低碳产业扶持计划申报指南

S7-200smart uses V90 Modbus communication control library to control the specific methods and steps of V90 servo

XaaS 陷阱:万物皆服务(可能)并不是IT真正需要的东西

使用easyexcel模板导出的两个坑(Map空数据列错乱和不支持嵌套对象)
![[hard core dry goods] which company is better in data analysis? Choose pandas or SQL](/img/70/a79c4a1724c11e208814de2d9cf553.png)
[hard core dry goods] which company is better in data analysis? Choose pandas or SQL
随机推荐
c——顺序结构
【obs】libobs-winrt :CreateDispatcherQueueController
Is the education of caiqiantang reliable and safe?
No matter how busy you are, you can't forget safety
openh264解码数据流向分析
Go language | 02 for loop and the use of common functions
随机数生成的四种方法|Random|Math|ThreadLocalRandom|SecurityRandom
安信证券在网上开户安全吗?
Force buckle 729 My schedule I
okcc呼叫中心有什么作用
Complete interview questions for interviewers and senior Android engineers in front-line Internet enterprises
Float. The specific meaning of the return value of floattorawintbits is to convert float into byte array
《乔布斯传》英文原著重点词汇笔记(十二)【 chapter ten & eleven】
多分支结构
通过POI追加数据到excel中小案例
Debezium series: idea integrates lexical and grammatical analysis ANTLR, and check the DDL, DML and other statements supported by debezium
id选择器和类选择器的区别
redis集群模拟消息队列
leetcode刷题:二叉树14(左叶子之和)
aggregate