codeforces309A的解题报告

codeforces的A题一般是比较简单的,题目的地址是http://codeforces.com/problemset/problem/390/A

题目的大意是:Inna是个贪睡虫,要有很多闹钟才能叫醒她。她的房间是个100*100的正方形格,每个整点可以放闹钟,左下角是(0,0),右上角是(100,100),然后她一开始可以选择水平或垂直类型,选定类型后,比如选了水平后,一个动作可以把水平的所有闹钟都关掉,垂直如此,要求输出最少的动作。

这个题目很简单,我们只要有两个数组,水平和垂直的各101个元素,然后根据输入的每个点进行记录,水平上的数组元素如果不为0代表x等于这个数的轴上有这个闹钟。然后比较水平和垂直上的数量,取最小的输出。

最近在学python,害的我用C解决的时候老是忘记分号或是少个花括号。下面是python的解法:

a = input('')
v = [0]*101
h = [0]*101
vc = 0
hc = 0
for i in range(int(a)):
    b,c = raw_input('').split(' ')
    b = int(b)
    c = int(c)
    if h[b]==0:
        h[b] = 1
        hc+=1
    if v[c]==0:
        v[c] = 1
        vc+=1
print min(vc,hc)

下面是C的解法:

#include<stdio.h>
int main()
{
	int h[101] = {0};
	int v[101] = {0};
	int v_count = 0;
	int h_count = 0;
	int a,i,b,c;
	scanf("%d",&a);
	for(i = 0;i<a;i++)
	{
		scanf("%d%d",&b,&c);
		if(h[b]==0)
		{
			h[b] = 1;
			h_count++;
		}
		if(v[c]==0)
		{
			v[c] = 1;
			v_count++;
		}
	}
	if(h_count>v_count)
		printf("%d",v_count);
	else 
		printf("%d",h_count);
	return 0;
}

现在来评价我的解法:妈的,跟狗啃似的,一点命名规范都没有,这个我得好好改。

再说说开学的事,唉,寒假怎么这么快,明天就要开学了,有点抑郁。明天得去厦门,然后后天就上课了。下学期要好好做人,好好学习,不刷微博,不开微信。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值