当前位置:网站首页>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
边栏推荐
- Successful entry into Baidu, 35K monthly salary, 2022 Android development interview answer
- 浮动元素与父级、兄弟盒子的关系
- 2023年深圳市绿色低碳产业扶持计划申报指南
- 40000 word Wenshuo operator new & operator delete
- okcc呼叫中心有什么作用
- What does software testing do? What are the requirements for learning?
- Debezium series: modify the source code to support drop foreign key if exists FK
- 14. Users, groups, and permissions (14)
- [hard core dry goods] which company is better in data analysis? Choose pandas or SQL
- Go language | 02 for loop and the use of common functions
猜你喜欢
Successful entry into Baidu, 35K monthly salary, 2022 Android development interview answer

Force buckle 729 My schedule I

That's awesome. It's enough to read this article

Securerandom things | true and false random numbers

图嵌入Graph embedding学习笔记
![[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

城链科技数字化创新战略峰会圆满召开

leetcode刷题:二叉树18(最大二叉树)

Win10 x64环境下基于VS2017和cmake-gui配置使用zxing以及opencv,并实现data metrix码的简单检测

Redis cluster simulated message queue
随机推荐
IBM大面积辞退40岁+的员工,掌握这十个搜索技巧让你的工作效率至上提高十倍
That's awesome. It's enough to read this article
软件测试是干什么的?学习有啥要求?
Debezium series: idea integrates lexical and grammatical analysis ANTLR, and check the DDL, DML and other statements supported by debezium
C - sequential structure
leetcode刷题:二叉树16(路径总和)
【obs】QString的UTF-8中文转换到blog打印 UTF-8 char*
Go language | 02 for loop and the use of common functions
Force buckle 1200 Minimum absolute difference
Inventory of the most complete low code / no code platforms in the whole network: Jiandao cloud, partner cloud, Mingdao cloud, Qingliu, xurong cloud, Jijian cloud, treelab, nailing · Yida, Tencent clo
安卓面试宝典,2022Android面试笔试总结
多分支结构
40000 word Wenshuo operator new & operator delete
leetcode刷题:二叉树14(左叶子之和)
95后阿里P7晒出工资单:狠补了这个,真香...
Gstreamer中的task
深度学习 卷积神经网络(CNN)基础
gst-launch的-v参数
How about testing outsourcing companies?
力扣 1200. 最小绝对差