水题~~
文章平均质量分 64
Masamiiiii
这个作者很懒,什么都没留下…
展开
-
Codeforces 255C Almost Arithmetical Progression DP
点击打开链接题意:n个数b[i],定义序列a[i]=a[i-1]+(-1)^(i+1) *q (i>2,q为常量)n合法的序列形式为 x,x+q,x,x+q,x.. .x,x+q 下一个出现的x 一定为第一次出现在x+q之后的x(显然更优)//怎么快速找到下一个x? b[i]j的x不用二分...从后往前推时,用pos记录J之后第一个和b[i]相等的位置 则设状态dp原创 2017-06-28 16:30:07 · 327 阅读 · 0 评论 -
codeforces 742B Arpa's obvious problem(水)
点击打开链接//题意:求ai^aj=x 的(i,j)&&i/两边同^ai -> aj=x^ai枚举i用map统计aj=x^ai出现次数即可 //坑点ans爆int1e5 x=31 2 1 2.......答案约等于1/2(1e5*1e5)统计出来的ij的个数一一对应,则i>j个数也为k#include #include #include #in原创 2016-12-07 11:05:24 · 337 阅读 · 0 评论 -
FJNU 1195 捧杯 向量(受力分析模拟)
点击打开链接#include #include #include #include #include using namespace std;typedef long long ll;const int N=1e5+20;const ll mod=400;int gcd(int a,int b){ if(a%b==0) return b; else return原创 2016-12-03 22:13:09 · 517 阅读 · 0 评论 -
UVA 156 Ananagrams map应用
点击打开链接#include #include #include #include #include using namespace std;const int N=1e5+20;string fun(string s){ int l=s.length(); for(int i=0;i<l;i++) { s[i]=tolower(s[i]); } sort(s.b原创 2016-11-12 19:25:30 · 282 阅读 · 0 评论 -
codeforces 621B 对角线计数
点击打开链接#include #include #include #include #include #include using namespace std;typedef long long ll;const int N=2e3+20;int f[N],s[N];int main(){ int n; cin>>n; memset(f,0,sizeof(f));原创 2016-10-20 17:27:21 · 393 阅读 · 0 评论 -
hdu 5944 Fxx and String 暴力(水)
点击打开链接题意:给定一个字符串s,求有多少个三元组(i,j,k)满足i,j,k是等比数列且s[i]=='y'&&s[j]=='r'&&s[k]=='x'。注意点:公比可能小于1#include #include #include #include #include #include #include #include using namespace std;原创 2016-10-29 22:37:48 · 470 阅读 · 0 评论 -
hdu 5912 Fraction(除法迭代)
点击打开链接#include #include #include #include #include using namespace std;const int M=1e3+20;typedef long long ll;int a[M],b[M];int gcd(int a,int b){ if(a%b==0) return b; else原创 2016-10-07 15:31:51 · 376 阅读 · 0 评论 -
uva 10815 Andy's Dictionary set(统计文章中单词数)
点击打开链接#include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;const ll mod=1e8+7;const int N=2e5+20;set dict;int main原创 2016-11-09 14:34:39 · 272 阅读 · 0 评论 -
Codeforces 723C暴力(最小值最大)
点击打开链接#include #include #include #include #include #include #include #define M 2016 using namespace std;const int inf=1<<20;int a[M],b[M];//b[j] the num of songs the groups j plays map原创 2016-10-03 22:23:44 · 550 阅读 · 0 评论 -
Codeforces 745B HongCow and puzzles 矩形(水)
点击打开链接//题意:'X'是拼图碎片 问给出两块G(不能旋转) 能否拼出矩形// 反过来看 就是把一个矩形切成两块,则每一块仍然是矩形,判断G中的'X'能否组成矩形 //确定矩形边界后求出面积与个数比较即可#include using namespace std;typedef long long ll;typedef pair P;const int inf=1原创 2016-12-18 10:39:05 · 610 阅读 · 0 评论 -
Codeforces 791 B Bear and Friendship Condition 规律
点击打开链接题意:n个点,m条边,n,m观察得到 同一个连通分量内,因为u,x联通,若长度为l 则u->长度2,3..l都必须有直接相连的边,所以任意两点都必须存在直接相连的边,dfs求出每个连通分量的点数n,合法的图边数要求边=C(n,2) #include using namespace std;typedef long long ll;const int N=5e5原创 2017-03-19 10:47:25 · 512 阅读 · 0 评论 -
Codeforecs 424C Magic Formulas 规律+前缀和
点击打开链接^异或符号 题意 给出n个数,n异或满足交换律和消去率 i mod k (i=1,2...n) = 1 ^2^3..^k-1^0 ^1^2^.....k-1^0,... 若有余数,r=n%k 总共有b=n/k+1组,若组数为偶数,则前面每组两两异或为0 ,最后有余数一组的值为 1^2^3..^r若组数为奇数 则前面每组两两异或为0,剩下1^...k-1 1原创 2017-03-20 14:40:40 · 794 阅读 · 0 评论 -
Codeforces 810C Do you want a date 枚举
点击打开链接题意:n个数,n//sort后 枚举最小值为i,则ans+=(a[j]-a[i])*2^(j-i-1) (j=i+1~n) //化解:一个数a[i]总共减了:a[i]*(2^0~2^(n-i-1)) 加了a[i]*(2^0+~2^(i-2)) #include using namespace std;typedef long long ll;con原创 2017-05-21 17:20:37 · 596 阅读 · 0 评论 -
Codeforces 792D Paths in a Complete Binary Tree 规律+模拟
点击打开链接题意:给出包含n个结点满二叉树,按照中序遍历的从1~n赋值,n规律1:高度为k的结点可以被2^k整除,不能被2^(k+1)整除 规律2:若结点在第k层,则减去2^(k-1)能到左子树,加上2^(k-1)能到达右子树.则第k层的到达祖先要么加上2^k 要么减去2^k 得到的数必须满足规律1 模拟即可 #include using namespace std;t原创 2017-04-27 16:48:39 · 327 阅读 · 0 评论 -
Codeforces 439C Devu and Partitioning of the Array 模拟
点击打开链接题意:给出n加入偶数个奇数 或者若干个偶数不会改变奇偶性 先构造出p组偶数,若偶数不足p个只能用奇数去补剩下奇数个数必须大于q,每一个奇数一组,最后一组必须是奇数个奇数和才能为奇坑点:所有数都要用上,p=0,q=0 偶数,奇数有剩下,情况要补全 #include using namespace std;typedef long long ll;cons原创 2017-04-26 13:54:06 · 352 阅读 · 0 评论 -
Hihocoder 147周 小HI的烦恼 bitset(技巧)
点击打开链接题意:n暴力O(5*n^2) TLE设 id[i][j] 第j门课排名为i的学生编号,s[j][i] 第j门课 排名为1..i的是那些人第i人的答案为 第k门排名高于他的人的集合相交(k=1~5),则ans=s[k][a[i][k]-1]相交后集合中1的个数#include using namespace std;const int N=3e4+10;in原创 2017-04-25 19:14:55 · 393 阅读 · 0 评论 -
Codeforces 805D Minimum number of stpes 规律
点击打开链接题意:给出string 只包含字符'a','b',长度简单观察 若有abbb ->bbabb bbbbbba a后面有多少个b该'ab'就变化多少次,并且b的个数增加为原先两倍.从后往前 碰到b累加,碰到a更新答案并把b的数量翻倍 #include using namespace std;typedef long long ll;const int N=原创 2017-05-05 08:35:24 · 451 阅读 · 0 评论 -
AGC 013 B Hamiltonish Path 模拟(deque)
点击打开链接题意:n任意两个相邻点作为endpoint,并放入双端队列中,遍历u的相邻点,若存在v没被访问,则令v为起点 继续模拟 因为一定有解,复杂度为O(M) #include using namespace std;const int N=2e5+20;int n,m;vector e[N];int q[N],f,r; //deque,保存起点和终点 int vi原创 2017-04-16 19:23:40 · 489 阅读 · 0 评论 -
Atcoder ARC 71D 井井井 / ### 公式化简
点击打开链接题意:给出m条平行于x轴的直线:yi ,n条平行于y轴的直线xi,n,mans=segma(1~n)segma(1~m)(xj-xi)*(yl-yk)ans=segma(xj-xi)*segma(yl-yk)n#include using namespace std;typedef long long ll;const int N=2e5+20;const原创 2017-04-10 23:35:40 · 730 阅读 · 0 评论 -
Codeforces 355C Vasya and Robot 暴力枚举
点击打开链接题意:给出n个物品重量wi,n如果用的手和上一次相同 则加上对应的Q1或者Q2,求取走n物品的最小消耗 由于每次只能从端点拿 若左手拿x次则会拿走前x个,右手会拿走后n-x个,交替使用后,在加上abs(x-(n-x))*(Q1 or Q2) 保存前缀和,暴力枚举即可#include using namespace std;typedef long long原创 2017-03-21 09:40:16 · 618 阅读 · 0 评论 -
hdu 5908 暴力(map)
点击打开链接#include #include #include #include #include using namespace std;const int N=1e5+20;int a[N],num[N],ans[N];mapt1,t2;//值和出现次数 int main(){ int t; cin>>t; while(t--) { int n;原创 2016-10-02 10:06:06 · 365 阅读 · 0 评论 -
CF 721B 字符串排序水题
点击打开链接#include #include #include using namespace std;const int N=110;char s[N][N];int n,k;char pass[N];void Sort(){ int i,j; char temp[N]; for(j=0;j<n;j++) for(i=j+1;i<n;i+原创 2016-10-01 00:25:59 · 379 阅读 · 0 评论 -
codeforces 727A 规律
点击打开链接两个操作 x*2 , x*10+1 (用bfs搜TLE了)发现经过操作1后的数为偶数 经过操作2后为奇数->合法操作只有一种所以最后的b如果为偶数 则可以推出是由操作1得来 将b/2继续迭代奇数 则由操作2的来 将b=(b-1)/10后继续迭代 ,可以发现如果 (b-1)%10!=0 则没有x*10+1=b 退出即可#include #include #in原创 2016-10-15 20:11:24 · 642 阅读 · 0 评论 -
poj 1852 ants 思维题
点击打开链接http://poj.org/problem?id=1852#include #include #include #include using namespace std;const int M=101000;int a[M];int main()//每个ant的最晚掉落时间 (如果两只蚂蚁碰到会改变方向) { //A L , B, R -> A R原创 2016-05-21 17:38:17 · 323 阅读 · 0 评论 -
poj 3187 next_permutation简单应用
点击打开链接#include #include using namespace std;const int M=20;int a[M][M],sum,n,b[M];bool solve(){ for(int i=1;i<n;i++) { for(int j=0;j<n-i;j++) { a[i][j]=a[i-1][j]+a[i-1][j+1]; } }原创 2016-06-03 14:41:49 · 347 阅读 · 0 评论 -
poj 1222 经典枚举
点击打开链接#include #include #include using namespace std;const int M=8;int g[M][M],button[M][M];bool solve(){ int i,j,k; for(i=1;i<5;i++) //根据第i行的state 确定第i+1行的state { for(j=1;j<=6;j++) {原创 2016-05-30 17:30:35 · 338 阅读 · 0 评论 -
hdu 2099
http://acm.hdu.edu.cn/showproblem.php?pid=2099#include int main(){ int i,j; long n,a,b,x,y; while(scanf("%ld%ld",&a,&b)&&(a+b)) { x=a; n=0; for(i=0;i<=9;i++) //枚举个位 { for(j=0;j<原创 2016-05-06 16:09:28 · 387 阅读 · 0 评论 -
zoj 1889
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=889#include int main(){ long m,n,i,c; while(scanf("%ld",&n)!=EOF) { if(n==2||n==5) { continue; } m=c=0; while(1) { m原创 2016-05-04 12:05:25 · 371 阅读 · 0 评论 -
zoj 2886
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2886#include #include #define M 11000int main(){ int t,n,s,i,j,k,c; char str[M]; scanf("%d",&t); while(t--) { scanf("%s",str)原创 2016-05-04 13:06:32 · 394 阅读 · 0 评论 -
nyoj 187 素数快速筛法
http://acm.nyist.net/JudgeOnline/problem.php?pid=187#include #include #include #include long const M=2000010;long a[M],p;int main(){ long i,j,x,y,k,q1,q2; int t,n; memset(a,1,sizeof(a));原创 2016-04-28 20:06:19 · 509 阅读 · 0 评论 -
zoj 1879
点击打开链接http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1879#include #include #include #define M 3100int a[M],b[M];int main(){ int f,i,j,k,n; while(scanf("%d",&n)!=EOF) { f=1原创 2016-04-28 15:19:55 · 399 阅读 · 0 评论 -
hdu 5744 思维题
点击打开链接#include #include using namespace std;// 题意 给出每个字符数量 求这些 把字符构成回文串后 最小的一组做为每组的ans 求最大的ans int main(){ int t; cin>>t; while(t--) { int sum=0; // 统计偶数字符个数 int odd=0; //奇数组数 int原创 2016-07-22 11:30:22 · 408 阅读 · 0 评论 -
hdu 1050 Moving Tables暴力法
点击打开链接#include #include #include #include using namespace std;const int M =210;int seg[M];// 问题 :给出区间 问至少选多少次才能全部选完,要求每次选的区间不相交 // 贪心: 选择不相交区间法 右端点排序 "第一个区间必选"(给其他区间留出更多的位置) 重复ans次// 暴力原创 2016-07-26 15:40:11 · 257 阅读 · 0 评论 -
poj 1316 哈希水
点击打开链接//// main.cpp// Jeremy1149//// Created by 123 on 16/7/4.// Copyright © 2016年 123. All rights reserved.//#include #include using namespace std;const int M = 10001;int Hash[M原创 2016-07-04 22:59:58 · 318 阅读 · 0 评论 -
UVA 1262编码(第k字典序)
点击打开链接我们先统计分别在每一列均在两个矩阵出现的字母,然后从小到大排好序。对于第一个样例来说,我们得到ACDW、BOP、GMOX、AP、GSU第一个字母无论以什么开头 后面都有3*4*2*3=72种可能 当ktot为后面的全排列 tot/=cnt[i] 则第i个字符因取第j个 j=k/tot (下取整,所以k-- 保证(72-1)/72 和(71-1)/72原创 2016-10-15 14:57:03 · 657 阅读 · 0 评论 -
uva 11040 规律递推(水)
点击打开链接#include #include #include using namespace std;typedef long long ll;const int N=15;int a[N][N];void print(){ for(int i=8;i>=1;i--) { for(int j=1;j<=i;j++) { if(i%2&&j%2) {原创 2016-10-13 19:32:35 · 352 阅读 · 0 评论 -
codeforces 724B 暴力+枚举
点击打开链接#include #include #include #include using namespace std;const int N=1e3+20;char g[N][N];int n,m,k,vis[N][N],res;bool flag;struct Move{ int x; int y; int k;//.个数 }off[4]={{-1,0},{原创 2016-10-09 12:10:04 · 406 阅读 · 0 评论 -
hdu 5805 简单思维题
点击打开链接#include #include #include #include #include #include using namespace std;const int M =101000;long n;long long a[M],f[M],g[M]; // f[i] 1~i中相邻差的最大值 g[i] i~n中相邻差最大值 int main()原创 2016-08-09 17:43:48 · 433 阅读 · 0 评论 -
hdu 5873 Football Games(思维题)
点击打开链接#include #include #include #include using namespace std;const int M=20010;int a[M];int main(){ int t; while(scanf("%d",&t)!=EOF) { while(t--) { int m; cin>>m; lo原创 2016-09-11 12:22:47 · 335 阅读 · 0 评论 -
hdu 5773 字符串水题
统计字符串出现次数点击打开链接#include #include #include #include #include using namespace std;const int M=110; struct Node{ char s[M]; int win;}node[40];void pre(){ int i=0; node[i].win=1;原创 2016-08-02 17:18:22 · 370 阅读 · 0 评论