模拟和枚举
文章平均质量分 65
chen_minghui
这个作者很懒,什么都没留下…
展开
-
Codeforces 803 B. Distances to Zero 模拟
题意:在一串数中,找到每个数到0的最近距离,输入保证至少含有一个0。题目链接:http://codeforces.com/contest/803/problem/B#include#include#include#include#include#include#include#include#include#include#define cle(a) memset(a,原创 2017-07-23 20:34:02 · 208 阅读 · 0 评论 -
codeforces B - Five-In-a-Row 模拟
题意:给一个五子棋布局,判断X棋手下一步是否能获胜。思路:选一个空白处行扫,列扫。对角线扫,扫到4个子就能获胜#includeusing namespace std;char a[15][15];int flag;bool solve(int x,int y,int cnt,int e){ int cnt1,cnt2,cnt3,cnt4; cnt1=cnt2=cnt3=cnt原创 2017-07-22 15:16:41 · 255 阅读 · 0 评论 -
codeforces 807A - Is it rated? 水
题意:两串数据,如果出现a[I]!=b[I],输出rated,否则看是否递减,是:输出maybe,否:输出unrated。题目水,题目意思很恶心#includeusing namespace std;int a[1005],b[1005];int main(){ int n; while(~scanf("%d",&n)) { int flag1=0,flag2=0原创 2017-05-27 09:39:03 · 573 阅读 · 0 评论 -
codeforces 810B - Summer sell-off 贪心
题意:有n天,每天最多可以卖的产品ki件,来购买产品的顾客li,每个顾客买一件,可以选定f天,使得可以(待)卖的产品数翻倍,问怎么安排使得卖的产品数最多,输出产品数。思路:先从l和k中取小的,作为没有翻倍前卖的产品数对任意一天如果1。ki>=li则k翻倍没有效果,不会增加卖的产品数2。ki如果2*ki如果2*ki>=li,则(卖出)产品数增加li-ki只需将增加量从大到原创 2017-05-26 21:38:50 · 386 阅读 · 0 评论 -
codeforces 810A Straight <<A>> 暴力
题意:给定n和k,并且已知一个数组a,a.size=n。求最少加几个小于等于k的数,使得平均值四舍五入后等于k。思路:每次加个k是最划得来的,假设加x个数ai....a(i+x) #include#define ll long longusing namespace std;int main(){ int n,k; while(~scanf("%d%d",&n,&k)) {原创 2017-05-26 19:10:35 · 215 阅读 · 0 评论 -
808A Lucky Year
题意:给定一个数n,找到一个比n大的数,并且非零位之多一位的数,输出他们之间的差值#include#define ll long longusing namespace std;int main(){ ll N; while(~scanf("%I64d",&N)) { ll n=1,a=N,b; while(N){ b=N%10;原创 2017-05-21 21:05:53 · 215 阅读 · 0 评论 -
CodeForces 768C Jon Snow and his Favourite Number 暴力 空间换时间
题意:给定一个长度 为n个数得数组a,一个数字x,一个数字k;现在对数组进行以下步骤,1.将数字从小到大排序,2.将奇数位置的数与x异或,偶数位置不变。会得到一个新的数组。一个这样的两个步骤称为操作,求进行k次后,最大值和最小值。思路:点击打开链接 这样的做法长姿势了#include#include#includeusing namespace std;const int INF原创 2017-05-09 20:54:38 · 543 阅读 · 0 评论 -
CodeForces - 769D k-Interesting Pairs Of Integers 暴力
题意:给定一个长度为n的a数组,(2=思路:预处理用一个数组记录数字I有几位为1,ai与aj有几位不同可以通过num[I^j]确定,1e4的二进制有14位,则I^j的做为14位1,num至少得开16383+1.#include#includeusing namespace std;int num[16384];long long vis[10001];void init(){原创 2017-05-08 19:11:54 · 468 阅读 · 0 评论 -
codeforce 789e Masha and geometric depression 暴力模拟
题意:给定一个等比数列的首项和公比b,q,(b和q都可以为0),另外给定一个数L,和m个数a[m],从首项开始计数,如果其绝对值小于等于L,则加1,然后取第二项,拿第二项当首项继续计数,直到b>L,将技术结果输出,如果有无数个,输出inf思路:分情况,输出。如果abs(b)>l直接判断为0.剩下的是bq=-1,数列为b和-b,都有无穷个,同理只要有一个不存在“bad”数组里,就有无原创 2017-05-05 11:10:08 · 724 阅读 · 0 评论 -
51nod 1483 化学变换
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1483 思路:统计每个所能到达的数和步数,奇数需要特别处理下 哎,模拟能力有待提高#include<cstdio>// 因为范围 2*1e5 枚举每个数能到达的范围,奇数要特别处理一下 #include<queue>#include<iostream>原创 2017-08-10 17:57:27 · 266 阅读 · 0 评论 -
poj Sum of Consecutive Prime Numbers 模拟
题目大意:输入数的范围在2到10000,要求求出输入数可以由小于等于它的素数之和,且这些素数要求相邻。如41有:2+3+5+7+11+13, 11+13+17, 41. 只有3种 #includeusing namespace std;const int maxn = 20000;bool a[maxn];int b[maxn]; //错误将存储答案的数组声明为bool型的 int l原创 2016-09-11 13:01:04 · 311 阅读 · 0 评论 -
hdoj 1034Candy Sharing Game
一开始递归过程没写好,还以为不是模拟过程,后来直接删除直接重写,之前错过许多次,思路变得清晰了,就AC了。。题目大意:一群学生围成一个圈,老师在中间,每个学生都有偶数个苹果,老师在中间吹一次哨子,学生同时将手中苹果一半交给右边同学,每次交换如果存在某个同学有奇数个苹果,那么老师给他一个,一直交换,直至每个学生苹果数相同为止,输出老师吹哨子次数和最终苹果数。注意:一开始我将交换规则理解错了,原创 2016-08-05 18:11:23 · 656 阅读 · 0 评论 -
hdoj 1047 Integer Inquiry
也是属于大数求和的问题,只是是输入多行数据,多行想加,与1003的区别是这里的进位carry可能超过10,carry注意处理,还有就是只输入一行和一行都不输入直接输入0的特殊情况。比较坑的是格式问题,看半天没看懂输入输出格式。输入第一行是一个整数,表示有几个输入块,每个输入块结束的标志为0,每块之间要有一个空行,最后一块,输出后也要换行。题目:http://acm.hdu.edu.cn/sho原创 2016-08-10 13:37:25 · 293 阅读 · 0 评论 -
hdu 1172 猜数字
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1172依照题意暴力枚举。#include#includeusing namespace std;struct node{ int a,b,c;}num[101];int num1[5],num2[101];int mark[5];int main(){ int n,ans,原创 2017-03-08 22:35:56 · 262 阅读 · 0 评论 -
codeforces B. Mike and strings 暴力+字符串
题意:给定n个字符串,可以进行一个这样的操作,将第一个字符移动到最后一个字符的后面,可以形成一个新的字符串,如:name进行一次操作,得到amen。求出最小移动次数,使得n个串相等,如果做不到,输出-1,否则输出次数。思路:每次选定一个串为目标串,其他的串为测试串,将测试串移动,使得所有串相等,求得最小。如果移动了长度个单位,说明不管进行多少次移动,都无法是的所有串相等,这时是-1#inc原创 2017-04-30 20:56:10 · 504 阅读 · 0 评论 -
811B - Vladik and Complicated Book 归并树
题意:给定n个数,m个区间l,r及一个位置p,l=思路:判断p位置左端到l比p大的数,与p位置右端到r比p小的数。两个相等位置不变,否则变了日了吉娃娃了,水题被我想得巨复杂,没想到这样也能过#include#includeint a[10100];int main(){ int n,m; while(~scanf("%d%d",&n,&m)) { memset(a,0原创 2017-05-28 09:51:06 · 328 阅读 · 0 评论 -
uva 101 The Blocks Problem 模拟
题意:给定n个箱子,编号为0~n-1。初始时,编号为0的箱子处于0,1处于1,,以此类推。可以进行五种操作。move a onto b:将a与b上的箱子放回原位。然后将a放到b的上方move a over b:将a上的箱子放回原位,b上方不动。然后将a堆积在b的上方。pile a onto b:将b上方所有的箱子放回原位,然后将a以及a上方所有的箱子放到b的上方。pile a ov原创 2017-07-12 14:02:43 · 228 阅读 · 0 评论 -
CSU 1785 又一道简单题
题意:给定一个四位数,问是否能改变一位数之后(最高位不能为0)使之成为一个数的平方和。 思路:直接开方模拟#include<cstdio>#include<queue>#include<iostream>#include<vector>#include<map>#include<cstring>#include<cmath>#include<string>#include<set>原创 2017-08-08 20:08:45 · 340 阅读 · 0 评论 -
51nod 1266 蚂蚁
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1266 题意:一条长为l cm的棍子上有n个蚂蚁,每秒行走1cm已知它们距离棍子左端点的距离,但是不知道朝向(往哪个方向爬),由于棍子太细,蚂蚁相遇后只能掉头返回,问所有蚂蚁掉下棍子时的最小时间和最大时间。 思路:看起来有速度,又要蚂蚁又要掉头,模拟很困难,其原创 2017-08-06 10:53:32 · 205 阅读 · 0 评论 -
51nod 1057 N的阶乘
题目:求n的阶乘(1<=n<=10000)链接 思路:手算模拟,总共分成m段,每个段8位数字,存在m个变量中,这样可以防止溢出,c可以理解为进位。输出的时候最低位可能是0,所以不能直接输出一个0,而要补齐8位。#include<cstdio>#include<queue>#include<iostream>#include<vector>#include<map>#include<cst原创 2017-07-31 21:06:18 · 189 阅读 · 0 评论 -
CodeForces 801A Vicious Keyboard 模拟
题意:给定一个只含V和K两个字符的字符串。要求最多变化一个,从V到K,或者从K到V,最多能组成多少个VK 子串。思路:长度只有100,暴力枚举每个字符变化,再求VK子串的数目,取其中最大的。#include#include#include#includeusing namespace std;int getvk(string s){ int n=s.size(); int原创 2017-05-01 20:54:55 · 316 阅读 · 0 评论