- 博客(8)
- 收藏
- 关注
原创 Distinct Substrings(2019年湖南acm第三题)
题目的意思是:给一串数字,然后在后面添加一个数字x问你新增了多少子串h[x],求这个数字x取从1到m时 3x*h[x]%mod的异或和。思路:考虑新添加一个数字,增加的子串的数量为所有以该数字结尾的后缀,但是会出现前面已经出现过的子串,所以我们需要算出在没有添加之前出现过多少以该数字结尾的字符串,考虑将这些数反过来,然后用exkmp求出,next[i]: T[i~n-1]和T的最长公共前缀;对于1~m的每一个数字,我们只要求出其最大值即可,然后n-最大值就是这个数字的答案,将所有的答案异或就是最后的..
2021-11-28 23:04:24
148
原创 组合数(2019湖南acm第二题)
思路:高精度来求代码:import java.math.BigInteger;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scan=new Scanner(System.in); int n,k; while(scan.hasNext()){//求最小值min n=s..
2021-11-26 23:12:29
263
原创 计算平方根(使用牛顿迭代)
注:在不使用sqrt(x)函数的情况下,得到x的平方根的整数部分。#include<stdio.h>//牛顿迭代,用来计算t的平方根 double vv(double i,int n){ double res=(i+n/i)/2; if(res==i){ return i; }else { return vv(res,n); }}int ff(int n){ if(n==0) { return 0; } return (int)vv(n,n);}i
2021-11-26 22:31:47
182
原创 全 1 子矩阵(2019年湖南acm第一题)
解题思路: 本题属于省赛中的水题,思路在于扫描矩阵后,找到1的行列对应的最小值和最大值,然后在这个对应的行列式中继续扫描,若出现0则输出No,反之若全为1则输出Yes。代码如下:#include<iostream>using namespace std;char vis[15][15];int main(){ int n, m; while (scanf("%d %d",&n,&m)!=EOF) { int flag = 0; int ...
2021-11-25 23:13:49
139
原创 Absolute Difference Equation(2020年湖南acm第四题)
DescriptionFor a sequencea_1, a_2, \ldots, a_na1,a2,…,an, consider the following operationff:f(a)={b_1, b_2, \ldots, b{n-1}}f(a)=b1,b2,…,bn−1, whereb_i=|a_i-a{i+1}|bi=∣ai−ai+1∣.After applying the operationffforn-1n−1times, denoted byf^{...
2021-11-24 22:16:18
296
原创 1-100 内素数的查找 - c语言
暴力法:#include<stdio.h>int main(){ //暴力法 又称BF int flag=0,sum=0;//立个flag ,素数个数总和为sum for(int i=2;i<=100;i++){ flag=0; for(int j=2;j<i;j++){ if(i%j==0){ flag=0; break; } else flag=1; } if(flag) sum++; } printf("
2021-09-10 22:48:53
244
原创 归并排序算法与代码实现c语言
基本思想:分而治之分治代码实现#include <stdio.h>#include <stdlib.h> // 辅助函数:打印数组void print_arr(int arr[], int n){ for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } putchar('\n');} // 合并void merge(int arr[], in
2021-09-02 22:22:41
209
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人