代码-新手问题,求高手解答

问题描述

新手问题,求高手解答

#include
#include
#include
typedef struct bitset *Set;
typedef struct bitset{
int setsize;
int arraysize;
int flag;
unsigned short *v;
}Bitset;
int ArrayIndex(int x)
{
return x>>4;
}

Set SetInit(int size)
{
int i;
Set S=(Bitset *)malloc(sizeof *S);
S->setsize=size;
S->arraysize=(size+15)>>4;
S->v=(unsigned short *)malloc(S->arraysize*sizeof(unsigned short));
for(i=0;iarraysize;i++) S->v[i]=0;
S->flag=0;
return S;
}
void insert(Bitset *s,int a[3])
{
for(int i=0;i
if(a[i]>0&&a[i]>>4arraysize)
{
s->v[ArrayIndex(a[i])]|=~(1<<(a[i]&15));
}
}
int SetEqual(Set A,Set B)
{
int i,retval=1;
for(i=0;iarraysize;i++)
{
if(A->v[i]!=B->v[i]){retval=0;break;}
}
return retval;
}
int main()
{
// clock_t begin, duration;
// begin = clock();
int i;
int j;
int N,count;
Set *a;
count=0;
scanf("%d",&N);
a=(Set *)malloc(N*sizeof(Bitset));
// duration = clock() - begin;
// printf( "用时约: %d毫秒
", duration*1000 / CLOCKS_PER_SEC );
for( i=0;i
{
int j;
a[i]=SetInit(1000);
int b[3];
scanf("%d%d%d",&b[0],&b[1],&b[2]);
insert(a[i],b);
}
// duration = clock() - begin;
// printf( "创建完用时约: %d毫秒
", duration*1000 / CLOCKS_PER_SEC );
for( i=0;i
{
if(a[i]->flag==0)
{

    for( j=i+1;j<N;j++)
    {
        if(a[j]->flag==0)
        {
        if(SetEqual(a[i],a[j]))
        {
          a[j]->flag=1;
        }
        }
    }
    }
}

// duration = clock() - begin;
// printf( "比较完用时约: %d毫秒
", duration*1000 / CLOCKS_PER_SEC );
for( i=0;i
{
if(a[i]->flag==0)
{
count++;
}
}
printf("%d
",count);
// duration = clock() - begin;
// printf( "计数完用时约: %d毫秒
", duration*1000 / CLOCKS_PER_SEC );

free(a);

return 0;

}
我这个代码超时,题目要求1000MS以内,跪求高手这个怎么改进,感激不尽。。。

解决方案

小新手有问题求解答

时间: 2024-09-20 06:47:23

代码-新手问题,求高手解答的相关文章

javascript-一段复杂的js代码,须从中解出unsuan这个函数,求高手解答

问题描述 一段复杂的js代码,须从中解出unsuan这个函数,求高手解答 请问各位大虾,如何从下面的代码中,解密出 unsuan 这个函数呢?小弟先感激不尽了! window"eval" { oInh5 = function(XsAGnSw3) { return (XsAGnSw3 < oER2 ? '': oInh5(window"parseInt")) + ((XsAGnSw3 = XsAGnSw3 % oER2) > 35 ? window[&qu

c#代码-求高手解答二进制堆及其应用问题

问题描述 求高手解答二进制堆及其应用问题 2.二进制堆及其应用 [问题描述] 堆是设计很巧妙的数据结构,堆排序的算法也有很多应用.但当堆比较庞大时,选取堆顶元素及重新建堆的工作量也较大.利用堆的定义构建二进制堆,应用于优先队列有很大的优势.二进制堆是在二进制树Bk上建立的数据结构.一个整数可以表示为二进制数,一组关键字组成的序列可以由一组二进制堆表示. [设计要求] 设计二进制堆的抽象数据类型及其实现. (1)实现二进制堆Hk的ADT. (2)实现二进制堆的简单应用. 以上是我的作业题,我没看懂

android开发-求高手解答安卓软件兼容性的一个问题

问题描述 求高手解答安卓软件兼容性的一个问题 安卓新手一枚,在2.2的试验机上做了个仿qq程序,今天拿了部4.0试了下,很多控件没有反应,甚至有的操作还会报错,不知道是为什么,我在建立这个项目时按照默认的配置配的,求解......

求高手解答:出现警告标语: 从“double”到“float”截断。

问题描述 求高手解答:出现警告标语: 从"double"到"float"截断. 我都是用float定义的,为什么程序编译时会说从double到float截断.代码如下 #includeusing namespace std;//#define float double class po{public: po(float x=0float y=0); void setpo(floatfloat); float getx()const{return x;} float

swing-关于JTable渲染器Renderer的问题,求高手解答!!!!

问题描述 关于JTable渲染器Renderer的问题,求高手解答!!!! public class MyButtonRender implements TableCellRenderer { private JPanel panel; private JButton add,reduce; private JTextField numbertf; public MyButtonRender() { this.initAdd(); this.initReduce(); this.initNumb

char-java中参数传递变换的问题,求问:结果为什么是这样的啊??求高手解答!拜谢~

问题描述 java中参数传递变换的问题,求问:结果为什么是这样的啊??求高手解答!拜谢~ 求问:结果为什么是这样的啊?? change:Test change:g change:b change:c TestPram:Hello TestPram:g TestPram:b TestPram:c 代码如下: public class TestPram { String str = "Hello"; char[] ch = {'a','b','c'}; public static void

firefox-关于PHP的一个小问题,求高手解答

问题描述 关于PHP的一个小问题,求高手解答 我刚开始学习PHP,当我敲完代码后,使用火狐浏览器打开localhost时就会下载.part文件,随后才会另开一个网页,显示应该出现的信息.但是我用360安全浏览器却 不会出现这个问题,直接就会出现应该出现的页面.昨天也出现了这个问题,我把AppServ卸载了重装,就没有这个问题.但是今天我启动后又出现了这个问题.请问这是怎么回事 解决方案 火狐浏览器设置了什么? 解决方案二: 什么都没有设置啊 解决方案三: www目录下面有文件名为index的文件

通过Dreamweaver用ASP设计注册登录系统出现未指定的错误,求高手解答

问题描述 通过Dreamweaver用ASP设计注册登录系统出现未指定的错误,求高手解答 本人初学Dreamweaver,小白一枚,用ASP设计注册登录系统,用的是本地/网络连接方式进行测试,在点击登录按钮后显示错误,错误为: Provider 错误 '80004005' 未指定的错误 /denglu.asp,行 9 求高手帮忙解答 解决方案 你把代码贴出来看看啊 解决方案二: 数据库连接有问题,你用的是什么版本的数据库,CONNECTSTRING是怎么写的? 另外检查数据库文件目录的访问权限.

spring 报错,求高手解答

问题描述 spring 报错,求高手解答 代码: package com.test.aop; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annota