模拟题总结

1、模拟题的常见题型:

(1)打表,列出所有可能(数据较少,规律明显)

(2)分阶段求解,自顶向下,先写出主程序,然后输入输出,判断条件这些直接用函数实现,简化步骤。

(3)模拟操作,有两种思路,一是直接模拟,得出结果;二是先记录所有操作,然后模拟每个操作。

(4)日期天数,可以逐年,逐月,逐日的相加,然后求星期之类的元素。

(5)图形模拟,行,列,对角线,找规律。

(6)利用数据结构(例如:栈,队列,链表,树状数组)实现,考虑数据结果的特点。

总原则:找特征,简化步骤。

 

小技巧:

(1)一队人环形排序,可以用取余来模拟循环。

int Walk(int pos,int dt,int len)    //dt表示步长,len表示要走的长度
{
	while(len--){
		do{
			pos=(pos+dt+n-1)%n+1; 
		}while(a[pos]==0); //do-while循环可以跳过已经出队的人员。
	}
	return pos;
}

(2)字符串的单词个数不多的时候可以分情况读取。

举个例子

(3)记录图中某个节点(i,j)的值可以用i*maxn+j的形式表示,

然后取这个位置的时候在i=x/maxn , j=x%maxn,就可以了。

(4)调试时可以输出结果来判断结果。

(5)有负数存在时尽量不用字符串输入,输入数字,减少字符串的运算。

 

 

注意点:

(1)输入时:如果int类型和char字符串之间有换行,要用getchar()去除那个换行,不然会报错。

(2)定义变量时不要使用已有的库函数函数或者变量。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值