当前位置:网站首页>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
边栏推荐
- acm入门day1
- 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
- c——顺序结构
- 常用运算符与运算符优先级
- Xaas trap: all things serve (possible) is not what it really needs
- [FAQ] summary of common causes and solutions of Huawei account service error 907135701
- Go language | 02 for loop and the use of common functions
- Redis cluster simulated message queue
- Zhongang Mining: analysis of the current market supply situation of the global fluorite industry in 2022
- 【无标题】
猜你喜欢
The city chain technology Digital Innovation Strategy Summit was successfully held
使用 RepositoryProvider简化父子组件的传值
软件测试是干什么的?学习有啥要求?
IBM has laid off 40 + year-old employees in a large area. Mastering these ten search skills will improve your work efficiency ten times
What do software test engineers do? How about the prospect of treatment?
XaaS 陷阱:万物皆服务(可能)并不是IT真正需要的东西
Jvmrandom cannot set seeds | problem tracing | source code tracing
leetcode刷题:二叉树11(平衡二叉树)
Win10 x64环境下基于VS2017和cmake-gui配置使用zxing以及opencv,并实现data metrix码的简单检测
Add data to excel small and medium-sized cases through poi
随机推荐
Go language | 01 wsl+vscode environment construction pit avoidance Guide
Using repositoryprovider to simplify the value passing of parent-child components
Android interview classic, 2022 Android interview written examination summary
leetcode刷题:二叉树16(路径总和)
Successful entry into Baidu, 35K monthly salary, 2022 Android development interview answer
Base du réseau neuronal de convolution d'apprentissage profond (CNN)
redis集群模拟消息队列
司空见惯 - 英雄扫雷鼠
Gstreamer中的task
openh264解码数据流向分析
Cocos2d-x项目总结中的一些遇到的问题
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
Flume series: interceptor filtering data
ffplay文档[通俗易懂]
【obs】QString的UTF-8中文转换到blog打印 UTF-8 char*
gst-launch的-v参数
不愧是大佬,字节大牛耗时八个月又一力作
BZOJ 3747 POI2015 Kinoman 段树
ACM getting started Day1
C#应用程序界面开发基础——窗体控制(5)——分组类控件