博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2019 gplt团体程序设计天梯赛总结
阅读量:5166 次
发布时间:2019-06-13

本文共 2450 字,大约阅读时间需要 8 分钟。

分很菜…

以后写题一定记得把题意理清楚了再开始写。

模拟题还是大坑,代码还是写得不够多,代码量一大就写bug。

 

补题

l1-8 估值一亿的AI核心代码

补题链接:

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define INF 0x3f3f3f3f#define ll long long#define lowbit(x) (x&(-x))#define PI acos(-1)#define ms(x,y) memset(x, y, sizeof(x))using namespace std;const int maxn = 1e4+7;char s[maxn];char punc[] = "`~!@#$%^&*()_+-={}|[]\\;':\",./<>?";char canYou[] = "can you"; // 7char couldYou[] = "could you"; // 9char me[] = "me"; // 2inline bool isPunc(char c) { for(int i=0;punc[i]!='\0';i++) if(c == punc[i]) return true; return false; }inline bool isCapit(char c) { return c >= 'A' && c <= 'Z'; }inline bool isSepar(char c) { return (c == ' ') | isPunc(c); }inline bool isCanYou(int ptr, int lim){ for(int i=0;canYou[i] != '\0'; i++) { if(i+ptr >= lim) return false; if(s[i+ptr] != canYou[i]) return false; } return 7+ptr >= lim || isSepar(s[7+ptr]);}inline bool isCouldYou(int ptr, int lim){ for(int i=0;couldYou[i] != '\0'; i++) { if(i+ptr >= lim) return false; if(s[i+ptr] != couldYou[i]) return false; } return 9+ptr >= lim || isSepar(s[9+ptr]);}inline bool isMe(int ptr, int lim){ for(int i=0;me[i] != '\0'; i++) { if(i+ptr >= lim) return false; if(s[i+ptr] != me[i]) return false; } return 2+ptr >= lim || isSepar(s[2+ptr]);}int print(int i, int lim){ if(isCanYou(i+1, lim)) { printf("I can"); i += 7; } else if(isCouldYou(i+1, lim)) { printf("I could"); i += 9; } else if(isMe(i+1, lim)) { printf("you"); i += 2; } else if(i+1 < lim && s[i+1] == 'I' && (i+2 >= lim || isSepar(s[i+2]))) { printf("you"); i += 1; } return i;}int main(){ int T; scanf("%d", &T); getchar(); while(T--) { cin.getline(s, maxn); puts(s); int len = strlen(s); int tp_begin = -1, tp_end = 0; int now_cnt = 0; for(int i=0; i
=0; i--) if(s[i] != ' ') { tp_end = i; break; } for(int i=tp_begin+1; i<=tp_end; i++) { if(s[i] == ' ') { int j = i+1; while(j <= tp_end && s[j] == ' ') j ++; // i+1~j-1: redundant space if(!isPunc(s[j])) s[now_cnt++] = s[i]; i = j-1; } else { if(isCapit(s[i]) && s[i] != 'I') s[i] = s[i] - 'A' + 'a'; else if(s[i] == '?') s[i] = '!'; s[now_cnt ++] = s[i]; } } s[now_cnt] = '\0'; printf("AI: "); int i = 0; while(i < now_cnt && s[i] == ' ') i ++; // first un-space i = print(i-1, now_cnt); for(i=i+1;i

 

转载于:https://www.cnblogs.com/HazelNut/p/10634245.html

你可能感兴趣的文章
putty配色方案
查看>>
谷歌在线加载
查看>>
谷歌大动作影响大部分App!Android P版本推荐使用HttpURLConnection,弃用Apache HTTPClient...
查看>>
团队作业7——alpha阶段之事后诸葛亮分析
查看>>
linux下如何设置vip(虚拟ip)
查看>>
import static和import的区别
查看>>
[Vuejs] 在vue各个组件中应用全局scss变量
查看>>
input实时监听控制输入框的输入内容和长度,并进行提示和反馈
查看>>
PhantomJS实现最简单的模拟登录方案
查看>>
多彩图标按钮动画下拉菜单
查看>>
Django安装及简介
查看>>
单调队列
查看>>
【图文】如何在centos上安装tomcat
查看>>
《CSS权威指南》读书笔记
查看>>
领导开会让你发表意见,怎样才能讲的高大上?提纲给你,直接用
查看>>
软件天才与技术民工(转载)
查看>>
UpdateLayeredWindow, Layered Windows, codeproject
查看>>
bzoj2809: [Apio2012]dispatching
查看>>
LeetCode第20题
查看>>
产品经理对产品细节需要给到什么程度才不会给开发人员骂?
查看>>