1001 Beautiful Palindrome Number 枚举回文数字前半部分,然后判断该数字是否满足,复杂度为O(sqrt(n))! 1002 Recovery Sequence  本题的核心在于求出约瑟夫环出队序列,如果直接暴力的话复杂度约为O(N*N)将会超时.这里可以使用 树状数组或者线段树或者SBt等数据结构 来优化根据本次出队位置和剩余人数的数量,可以算出下次出队的位置,从而使用数据结构来查询其真实标号.对于每组样例的复杂度根据不同的数据结构为 O(nlgn)或O(nlgnl…
问题 A: 求近似值 #include <stdio.h> #include <time.h> #include <stdlib.h> using namespace std; #define ll long long const ll M = 9e18; ; struct Node { ll m[][]; }; ll a[]; Node mul(Node a, Node b) { Node A; ; i < ; ++i) { ; j < ; ++j) {…
题目描述 三角数:形如图a,圆点摆放成等边三角形的数字,则为三角数. (图a) 平方数:形如图b,小方块摆放成正方形的数字,则为平方数. (图b) 那么如果一个数字既是三角形数又是平方数,则称为三角平方数.很显然我们知道第一个三角平方数就是1了. 那么第n个三角平方数是哪个呢? 输入 输入一个正整数n (1≤n≤2001≤n≤200) 输出 输出第n个三角平方数 样例输入 1 样例输出 1 提示   来源 ismdeep 提交 我的状态 © 2018  JustOJ     中文  Englis…
B Interesting paths 考察范围:组合数学 此题是机器人走方格的变种,n*m的网格,从(1,1)走到(n,m),首先可以明确,水平要走m-1格,竖直要走n-1格,则走到目的地的任意一条路径必须走n+m-2格,呢么只要确定竖直要走的,剩下的就是水平要走的,则答案为 . 在Interseting paths要求左下角和右上角两个小矩阵不能走,则需要把整个网格依据两个小矩阵的水平和竖直边界分为两部分,依次运用组合数.例如 灰色区域之外为可走区域,分为两部分棕色,和黄色,则结果为 若是这…
 C语言竞赛初级组第一.二场答案:https://www.cnblogs.com/xingkongyihao/p/10046918.html  A: 逆序对 时间限制: 1 s      内存限制: 128 MB  题目描述 1.整数序列中两个相邻的数,如果后面的数小于前面的数,则称这两个数值构成了一个逆序对.例如,整数序列10,4,16,8,21,18,9中包含了4个逆序对.从键盘上输入n个由空格分隔的整数,编程输出其中包含的逆序对的数量. 输入 第一行输入一个数字n (1≤n≤1000) 第…
A 解法:dfs搜索,注意一个剪枝,否则会超时(听说原本是个dp)? #include<stdio.h> //#include<bits/stdc++.h> #include<string.h> #include<iostream> #include<math.h> #include<sstream> #include<set> #include<queue> //#include<map> #in…
ACM ICPC WORLD FINAL 解法:排序大家都知道,去重的话,初学者用数组就好了 #include<algorithm> #include<iostream> using namespace std; int main() { int a,b,c[100],i,d[31]; cin>>a; while(a>0) { cin>>b; for(i=0;i<31;i++) d[i]=0; for(i=0;i<b;i++) { cin&…
问题 A: Petr的盒子(初) #include <iostream> #include <stdio.h> #include <algorithm> using namespace std; ]; int main(){ int n , x; scanf("%d",&n); ; i < n ; i ++){ scanf("%d",&x); a[i] = ; a[i] *= x; } ; i < n…
Beautiful Palindrome Number 题意:求N里面有多少个符合要求的数字(数字要求:回文数,且前一半部分是不严格递增) 解法:打表 #include<bits/stdc++.h> using namespace std; int find1(int index) { ; ; //记录数位上的回文数,如个位回文数为9 ; //记录数位 long half; //保存回文数的左半边的结果 ; //回文数的左半边的起始基数 long res; //结果 while(true) {…
问题 A: jxust 解法:争议的问题(是输入整行还是输入字符串),这里倾向输入字符串,然后判断是否含有jxust就行 #include<bits/stdc++.h> using namespace std; string s; int num; //jxust int t; class P { public: int cmd(string s) { num=; ; i<s.length()-; i++) { ]==]==]==]=='t') { num++; } } return n…