摘要:
暴搜就行,还有一个方法,是logn的算法的,等下看a^b2的代码吧,上暴搜的代码:#include <stdio.h>#include <stdlib.h>int main(int argc, char **argv){ int i; int a, b; int s = 1; scanf("%d%d", &a, &b); for(i = 1; i <= b; i++){ s *= a; s %= 1012; } printf("%d\n", s); return 0;} 阅读全文
摘要:
果断直接SPFA,f[i][j]代表到达(i,j)的时间,f[i][j] = f[a][b] + num[i][j] (a, b) 是(i, j)相邻的.. 代码:#include <stdio.h>#include <stdlib.h>int map[25][25];#define MAX 4000struct box{ int x, y;}queue[MAX];int head, rear;int used[25][25];int dis[25][25];int m, n;void enqueue(int x, int y){ if(used[x][y]){ ret 阅读全文
摘要:
我用的暴搜,别人说还有一种方法:题目要求n个数同余。等价于求这n个数两两求差(大减小)所得的所有数的最大公约数。 我的暴搜代码如下:#include <stdio.h>#include <stdlib.h>int num[100];int ans;int main(int argc, char **argv){ int i, j, t; int n, max = 0; scanf("%d", &n); for(i = 0; i < n; i++){ scanf("%d", &num[i]); if(max & 阅读全文
摘要:
简单的模拟吧,大家都尝试尝试~~不太难,代码:#include <stdio.h>#include <ctype.h>#include <string.h>#include <stdlib.h>char str[101];char c;char *getval(char *str, int *i){ int t = 0, m = 0; if(str[0] == '-'){ m = 1; str++; }else if(str[0] == '+'){ str++; } while(isdigit(*str)){ t 阅读全文