20140711总结

  第一题,傻逼题。但是忘判平方了。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 int xx[4000001];
 6 inline void work(int n)
 7 {
 8     for(int i=1;i*i<=n;i++)
 9     {
10         if(n%i==0)
11         {
12             if(i*i==n) xx[n/i]++;
13             xx[i]++;
14         }
15     }
16
17 }
18 char k;
19 inline int getint()
20 {
21     int ans=0;
22     k=getchar();
23     while(k==‘\n‘||k==‘ ‘)
24         k=getchar();
25     while(k!=‘\n‘&&k!=‘ ‘)
26     {
27         ans=ans*10+(int)k-(int)‘0‘;
28         k=getchar();
29     }
30     return ans;
31 }
32 int ans=0;
33 int main()
34 {
35     freopen("set.in","r",stdin);
36     freopen("set.out","w",stdout);
37     int N=getint();
38     for(int i=1;i<=N;i++)
39     {
40         k=getchar();
41         getchar();
42         if(k&1)
43         {
44             int t=getint();
45             work(t);
46         }
47         else
48         {
49             int t=getint();
50             ans^=xx[t];
51         }
52
53
54     }
55     printf("%d\n",ans);
56 }

  第二题,并查集,详见食物链。

 1 #include<cstdio>
 2 #include<string>
 3 #include<cstring>
 4 using namespace std;
 5 long long father[3000030];
 6 long long Find(long long x)
 7 {
 8     if(father[x]==x)
 9         return x;
10     return father[x]=Find(father[x]);
11 }
12 bool Same(long long L,long long R)
13 {
14     if(Find(L)==Find(R))
15         return true;
16     return false;
17 }
18 void Union(long long L,long long R)
19 {
20     long long fL,fR;
21     fL=Find(L);
22     fR=Find(R);
23     if(fL==fR)
24         return;
25     father[fL]=fR;
26 }
27 int main()
28 {
29     long long n,k,ans=0;
30     scanf("%I64d%I64d",&n,&k);
31     for (int i=1;i<=n*3;i++)  //扩大为三个节点
32         father[i]=i;
33     for (int i=1;i<=k;i++)
34     {
35         long long d,x,y;
36         scanf("%I64d%I64d%I64d",&d,&x,&y);
37         if (x>n||y>n) ans++;
38         else if (d!=1&&d!=2) ans++;
39         else if (d==2&&x==y) ans++;
40         else if (d==1) //x,y 同类时
41         {
42             if (Same(x,y+n)) ans++; //x吃y
43             else if (Same(x+n,y)) ans++; //y吃x
44             else //合并操作
45             {
46                 Union(x,y);
47                 Union(x+n,y+n);
48                 Union(x+n+n,y+n+n);
49             }
50         }
51         else  //x吃y时
52         {
53             if (Same(x,y)) ans++; //x,y同类
54             else if (Same(x+n,y)) ans++; //y吃x
55             else
56             {
57                 Union(x,y+n);
58                 Union(x+n,y+n+n);
59                 Union(x+n+n,y);
60             }
61         }
62     }
63     printf("%I64d\n",k-ans);
64     return 0;
65 }

  第三题,调和级数是收敛的(笑)。标程是数据分治。。哎。我错的很离谱。

 1 #include<cmath>
 2 #include<cstdio>
 3 using namespace std;
 4 long long n;
 5 int m;
 6 int main()
 7 {
 8     scanf("%I64d%d",&n,&m);
 9     if(n<5000000)
10     {
11         double ans=0.0;
12         for(int i=1;i<=n;i++)
13             ans+=1.0/i;
14         printf("%d\n",(int)floor(ans*m - (1e-7)));
15      }
16     else
17     {
18         printf("%d\n",(int)floor((log(n)+0.57721566490)*m - (1e-7)));
19     }
20     return 0;
21 }

20140711总结

时间: 2024-08-02 07:01:44

20140711总结的相关文章

C#中类属性问题。2014-07-11

刚才发生了一个非常有意思的事情. 同事问我 为什么在一个程序集里,没办法引用另一个类. 我看了下代码 具体的记不太清了. 发现两个类不是同一namespace,但是上面有命名空间的引用却还是不行. 代码使用处直接调用命名空间也没有反应. 经验不足的我们两个只能求助老大. 老大说:在有问题的那个类上 右键 →属性 → 生成操作选择[编译] ---------------------我擦! 好吧 第一次知道这个.记一下~ C#中类属性问题.2014-07-11,布布扣,bubuko.com

20140711 eat

不多说 NOI2001食物链 核心就是并查集,并查集数组中存0 1 2 3 表示未分营养级 A  B  C 然后再一个个恶心的判断.... inline bool Union(int x,int y,int D){ int a=find(x), b=find(y); if(a==b){ if(D==1&&rank[x]!=rank[y]) return false; if(D==2){ if(rank[x]==2&&rank[y]!=1)return false; if(r

20140711 set

题目大意 维护一个可重集,支持: 插入一个正整数 询问一个正整数k,集合中有多少个数是k的倍数 数据范围是40000,时限0.5s 暴力肯定不行,想起这道题叫set,今天中午刚刚看了STL set用法,于是用了一个set来做,想着是logn的复杂度,其实还是n,总的就是n^2.............................................. 后面才知道应该将插入的数分解因数,读入一个查询值直接输出即可,O(n*n^0.5) 1 #include<cstdio> 2 #

[20140711] SQL Server page还原

create DATABASE T --数据库不能是简单模式 go USE t GO CREATE TABLE t(id INT IDENTITY,value CHAR(8000)) GO INSERT INTO dbo.t ( value ) VALUES ( REPLICATE('a',5000) ) go 5 BACKUP DATABASE t TO DISK = 'c:\t.bak' WITH INIT go --停服务 --用ue打开数据文件 找 aaaa,修改 随便改 DBCC ch

个人--20140711 转正定级 个人工作总结

转眼间,离开大学校园参加工作已一年.一年来,在各级领导的教导和培养下,在同事们的关心和帮助下,自己的思想.工作.学习等各方面都取得了一定的成绩,个人综合素质也得到了一定的提高,现将本人这一年来的思想.工作.学习情况作简要总结汇报.  学习生活上,完成了学生角色的转变,完全进入工作状态,努力开展工作.   初来公司参加工作,由于离家较远,而且是完全陌生的环境和生活状态,也曾经很担心不知该怎么与人共处,该如何做好工作.但是公司里宽松融洽的工作氛围.良好的学习发展机遇以及在各级领导的关心和帮助下,让我

ngx lua模块源码简单解析

ngx lua模块源码简单解析分类: nginx 2014-07-11 11:45 2097人阅读 评论(0) 收藏 举报nginxlua数据结构架构目录(?)[+]对nginx lua模块的整个流程,原理简单解析.由于nginx lua模块相关配置,指令,API非常多,所以本文档只以content_by_lua指令举例说明. 读本文档最好配合读源码. 不适合对nginx和lua一点都不了解的人看.1.相关配置详细配置见 https://github.com/openresty/lua-ngin

log4j.xml的实用例子

大多数讲log4j配置的教程用的都是log4j.properties文件,我觉得xml或许更好一点,在这里我提供一个我已经用于生产环境的log4j.xml的例子,先上代码,然后再解释: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.

ACdream 之ACfun 题解

A - ACfun Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) SubmitStatus Problem Description 题目链接点击打开链接 As a former ACMer, "AC" is a special abbreviated word which can bring much pleasure to me. Sometimes it means

Android 时间轴

效果图: 数据是随便填的,显得有点乱,但是不影响效果.实现方面主要是用ListView来实现,主要是根据ListView的item位置与上一条数据进行比较,来控制时间的显示隐藏效果.思路很简单,下面看代码实现: 首先是页面的整体布局,很简单,就一个ListView: res/layout/activity_main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:and