
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
原题链接这道题不能用暴力算法啦,要用模拟除法。以原题为例,你在纸上写上一长串的1,比如11111111111111111。这总共是17个1,下面列竖式去除31。你会发现当除到第15个1的时候31整除了这个数,所以我们的答案就是15个1。这样子可以极大的减少时间复杂度。代码如下:#include <stdio.h>int main(){long long t=1,n;i...
原题链接思路如下:用邻接表存储邻接矩阵,否则遇到稀疏图的时候会出现超时的现象。每个情况下,摧毁一个城市a等价于置a城市相连的城市数为0,与a相连的城市相连城市数减1。如果在摧毁所有目标后依然有城市的相连城市数大于0,那么战略失败,否则战略成功。#include <stdio.h>#include <stdlib.h>int vn1[10010]={0},v...
原题链接这道题读的我有点云里雾里的,最关键的一点是如果朋友圈只有一个人那么他就不是因为帅而没有朋友(这个理解大概是对的吧,这道题真的有点迷)下面附上代码#include <stdio.h>int main(){int num[100000]={0};int n,i,m,p,k,t=1,j,f=1;scanf("%d",&n);for(i=0;i<n...
原题链接这道题用的算法时间复杂度是O(n^2) 学有余力的同学可以去看看“马拉车算法”,那个算法解这道题时间复杂度是O(n),但是这个算法这道题也可以过。大概思想如下:首先最外面套一层循环,从第一个字符遍历到最后一个字符。如果对称子串是奇数串,那么最中间的字符我们就不管了。对称子串当前最大长度为1,这时i-j表示指向第i个字符变量左边第j个字符,i+j表示指向第i个字符变量右边第j个字符...
原题链接这道题不难,我发现用一个大数组保存信息这一招相当有用,易于理解且便于实现,代码如下:#include <stdio.h>int main(){int n,i,j,k,t,num;int a[1001]={0};scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&k);for(j=0;j&...
原题链接这个题还是老生常谈的输入输出问题,需要注意的点如下:scanf输入遇到空格停止但不会吸收空格,在空格之后如果我们需要输入一个字符的时候应该先getchar();gets();之前有回车键,依然需要一个getchar()去吸收;代码如下#include <stdio.h>#include <string.h>int main(){int n,i;...
原题链接这道题…用c语言写太坑了输入是一个很需要注意的点下面附上代码,一定要多注意细节#include <stdio.h>int main(){int n,i;double sg,dy;char sex[2];scanf("%d",&n);for(i=0;i<n;i++){scanf("%s %lf",sex,&sg);i...
原题链接这道题说实话还是比较复杂的,对于有些简单的20分题目明显难了些。最后一个测试点的分子是0,不注意处理的话会出现浮点错误,在细节上的实现也很重要,最后就是要记住辗转相除求最大公因数。代码如下:#include <stdio.h>typedef struct{int fz;int fm;}number;int gcb(int x,int y){int c,...
原题链接具体思想参照下方链接已知树的中序遍历与前(后)序遍历求二叉树问题附上源码:#include <stdio.h>#include <stdlib.h>typedef struct node* bintree;typedef struct node{bintree left;bintree right;int data;}tree;bint...
原题链接这是一道很坑的题目,下面列出需要注意的点,具体代码的实现并不难,但是细节真的很重要。a如果是空串用c语言如何处理?b如果是数字+空格+乱码构成的字符串那么还能用scanf输入吗?你是否注意到a和b都是1到1000之间的整数?具体的请看代码,相信聪明的你经过提示之后不难看懂代码。#include <stdio.h>#include <string.h>...







