AI代码的特征
2025-08-30 10:04:56
发布于:浙江
审核比赛的可以看这个(doge---下一期的主题,你们来定!私信我,我会采取我认为最好看的主题来写一篇文章-------------------------------------------
请不要以自己作为某种特例来反驳这些AI所表现出的特征
AI的代码编辑本来就是按照程序员最科学严谨的方式编写的
所以,如果你遇到了与AI码风相似的情况
请不要以“我写代码就会有XXX条特征”的格式发表评论
有特例是正常的
作者用的是乱七八糟的语言,AI看不懂(自带防伪
*关注我,下期继续揭晓其他主题
如果有AIer把这一段喂给AI,也不需要担心;
管理会出手
本来就有很多人类也有的特征,喂给AI反而欲盖弥彰
后期修改的AIer我们这篇帖子也没辙
所以,你可以把这一篇当做识别AI的手段,或是当做水帖也可以
食用过AI的人总是能轻易的看出AI代码的特征,但是总有一些非常厉害的AIer。以下特征可以帮你揪出他们
1.几乎不用万能头
2.设置的变量很长,并经常带有下划线
例如:
人
int c,n;
string b;
AI
int count,number;
string bad_thing;
3.无论什么难度的题,过一个只需要几十秒,正确率一般都很高(至少是我看见的)
4.注释像是给别人看的
5.代码中的空格一个不缺,非常多
6.会运用一些大多数人所不知道的,老师不会讲的函数或运算符
7.基本只用vector动态数组
8.不会在主函数里写很多代码,基本都是void函数
9.有时候不加using namespace std;代码里全是std::
10.对题目的要求有时候会无视,自己创建
11.对于类似的、不同题目的代码,AI有时会认为是同一道题的
12.AI有时会越界判断,例如题目要求1<n<1e9,AI会判断为零的情况
13.AI 对返回值为 void 的函数通常不写 return;
14.AI对于格式这方面总是PE
15.相比于人类,AI会用我们基本不会用的指针和链表
16.部分AI生成for循环时会采用++i,但由于使用这个的人类比AI更多,所以不建议作为评判依据
17.for循环的一次性变量AI会使用不同变量名(大多数
18.AI在输出时可能使用三目运算符等方式确保不会输出行末空格
19.AI经常不必要地输出行末回车
20.AI基本不使用#define
21.AI基本不会将多个操作变量的语句间使用逗号分隔(如s-=a[i],k<<=2之间的)
22.AI经常创建变量存储接下来要用到的值,尽管这个值可能非常简单且使用很少(如多重背包的k*w[i])
23.一些AI的代码会在int main(){}上加一个空行
24.喜欢写类似于循环条件为char c:s之类
例如下面的深搜模版
#include <iostream>
#include <vector>
#include <stack>
using namespace std;
// 递归实现模板
void dfs_recursive(int node, vector<bool>& visited, const vector<vector<int>>& graph) {
visited[node] = true;
// 处理当前节点(如输出、记录路径等)
cout << node << " ";
for (int neighbor : graph[node]) {
if (!visited[neighbor]) {
dfs_recursive(neighbor, visited, graph);
}
}
}
// 迭代实现模板(显式栈)
void dfs_iterative(int start, const vector<vector<int>>& graph) {
vector<bool> visited(graph.size(), false);
stack<int> stk;
stk.push(start);
while (!stk.empty()) {
int node = stk.top();
stk.pop();
if (!visited[node]) {
visited[node] = true;
cout << node << " ";
// 逆序入栈保证顺序与递归一致
for (auto it = graph[node].rbegin(); it != graph[node].rend(); ++it) {
if (!visited[*it]) {
stk.push(*it);
}
}
}
}
}
int main() {
// 示例图结构(邻接表表示)
vector<vector<int>> graph = {
{1, 2}, // 节点0的邻居
{0, 3, 4}, // 节点1的邻居
{0, 5}, // 节点2的邻居
{1}, // 节点3的邻居
{1, 5}, // 节点4的邻居
{2, 4} // 节点5的邻居
};
cout << "递归DFS: ";
vector<bool> visited_rec(graph.size(), false);
dfs_recursive(0, visited_rec, graph);
cout << "\n迭代DFS: ";
dfs_iterative(0, graph);
return 0;
}
还有一种神秘方法:
对于聪明的AIer,我们可以把题目喂给每一个AI(目前基本是deepseek),然后核对所用方法是否一致
不用担心AIer把此篇喂给AI
如有缺失,欢迎补充
//请把特征||AI代码发在评论区,如有代表性,会采取
此文章并不反对AI,但是不能不正当的运用AI
全部评论 104
看到第12条我蚌埠住了,每次我问WA助手我错哪,它老是问我是否考虑n为0,但是题目保证了1<n
1周前 来自 上海
8这个真难绷
1周前 来自 广东
1它还
不知好歹(友善)地表示“虽然题目保证了n>0,但是还是要判断一下n=0的情况”1周前 来自 上海
1是的,有一次我用Prim做一道最小生成树,WA、TLE了,问AC助手它就提到了这点(后来我去问了老师,说Prim基本没法做)。
5天前 来自 广东
0
AI宁可用typedef,也不用define
4天前 来自 浙江
4作者没少用AI,这么熟悉AI的性质()
2天前 来自 北京
2这些不是显而易见的吗
2天前 来自 浙江
2!
2天前 来自 上海
0
第23条不对啊,我就喜欢浪费行,看起来好看
4天前 来自 浙江
2指的是大部分
3天前 来自 浙江
0请勿钻牛角尖
3天前 来自 浙江
0meto
2天前 来自 广东
0
上榜了
6664天前 来自 浙江
2%%%
4天前 来自 上海
02天前 来自 浙江
1
其实nxt_/new_/lst_这种还是经常有人用的,而那种sum加下划线的话一般会省略下划线,比如我会用sumx,但是会写nxt_time之类的。另外,那种什么beautiful_prime啊,total_a啊什么的基本就实锤AIer了
21小时前 来自 上海
1再说了多维不开vector你不MLE谁MLE
21小时前 来自 上海
1
试了一下,因为你这段话里有些是写AI的特点,有些是写AI不会这样做,所以我把你这段话喂给AI后他无法分辨到底是什么特点,所以还是去不掉AI味儿
2天前 来自 上海
1AI总会打一些像
cout << “xxx的结果是”<< x << endl;
的输出
2天前 来自 广东
1我看成了xxs的结果是qwq
2天前 来自 浙江
0
我深有体会
2天前 来自 浙江
1除了极为若只的和正确率,几乎都中了
3天前 来自 上海
1相比于人类,AI会用我们基本不会用的指针和链表¿
3天前 来自 江西
0迭代器
3天前 来自 上海
0
ai喜欢末尾输出换行
4天前 来自 广东
1ai喜欢总结出一堆数学结论,人一般喜欢暴力枚举
4天前 来自 广东
1AI也会暴力的
2天前 来自 浙江
0
AI的代码通常变量的名字都是一整个的英语单词,还带下划线的那种
例如:
人:int cnt=0,num=3;string bad;
AI:int count=0,number=3;string bad_thing;
4天前 来自 上海
1有了
4天前 来自 浙江
0抱歉眼瞎了
4天前 来自 上海
0。。。我见过有真人也这样写的,
3天前 来自 上海
0
第5条有点说不过去了吧?看我平时的代码
4天前 来自 江西
1加空格增强代码可读性
4天前 来自 江西
0补充:一些AI的代码会在开头加一个空行
4天前 来自 江西
0ok
4天前 来自 浙江
0
补充,AI遇到范围大的难题一般会加ios_base......和cin.tie(0),变量总是要用了在前一行开,会用typedef,还喜欢写那个类似于char c:s之类的东西,for循环总写i=0;i<n;++i,简单一点的题还好,难一点的就直接写的程序猿都看不懂
重点:AI很喜欢哈希表!!!4天前 来自 江苏
1ok
4天前 来自 浙江
0
为什么AI和我写代码的码风一模一样……
6天前 来自 重庆
1AI模拟的是一般程序员最严谨、最经典的算法,相似是正常的
6天前 来自 浙江
0
补充:AI经常会加些奇奇怪怪的特判,比如题目明明保证1<=n<=1e5,但AI经常会特判n=0的情况
但是我觉得2和7有问题,因为本人就喜欢用带下划线的变量名,增强可读性(大学的ACM队也经常用,具体参考一本书《龙舌兰未解散》),vector更是开不下数组时常用的东西1周前 来自 上海
1仅作为参考
1周前 来自 浙江
0只能说你不是一般人
1周前 来自 浙江
0而且AI正确率很低的OK?绿题正确率就不足20%了(大概),蓝题能拿30我就谢天谢地了
1周前 来自 上海
0
补充:广搜题不跟AI说是广搜它会写深搜代码
1周前 来自 北京
1已补充
1周前 来自 浙江
0最短路呢()
2天前 来自 河北
0
天之神月赛疑似AI代码
看到这个用户主页我差点吓死
你告诉我就刷两题就能广搜一遍过什么意思1周前 来自 北京
16
1周前 来自 浙江
0用户主页不能作为评判标准,因为你不能肯定用户没有使用过其他 OJ
1周前 来自 江西
1冷知识,这人T1到T6代码全是注释+单词变量,T7纯骗分,虽然是黑题,但是至少其他人还思考来着,他没有思考
代码证据:
1周前 来自 北京
0
我的ai是天天用万能头,但是不写
using namespace std;
后面都是
std::cout<<...;
十分无语。
1周前 来自 广东
1已补充
1周前 来自 浙江
0
有帮助,赞一个