2019/10/27 TZOJ

1001 Gaussian Prime

http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=3798

.......................................我是真的一言难尽

1002 Sum of Factorials

http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=2696

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 #define N 1000005
 5 int a[15];
 6 void init()
 7 {
 8     a[0]=a[1]=1;
 9     for(int i=2;i<10;i++)
10         a[i]=a[i-1]*i;
11 }
12 int main()
13 {
14     init();
15     int n;
16     while(~scanf("%d",&n),n>=0)
17     {
18         if(n==0)
19         {
20             printf("NO\n");
21             continue;
22         }
23         int all=0;
24         for(int i=9;i>=0;i--)
25         {
26             all+=a[i];
27             if(all>n) all-=a[i];
28         }
29         if(all==n) printf("YES\n");
30         else printf("NO\n");
31     }
32 }

1003 Billboard

http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=6016

黑板报h*w,第i个广告是1*wi。优先上、左。线段树存剩余最大容量。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 #define M 200005
 5 int tre[M<<2];
 6 void build(int ind,int left,int right,int w)
 7 {
 8     tre[ind]=w;
 9     if(left==right) return;
10     int mid=(left+right)>>1;
11     build(ind*2,left,mid,w);
12     build(ind*2+1,mid+1,right,w);
13     tre[ind]=max(tre[ind*2],tre[ind*2+1]);
14 }
15 int finda(int ind,int left,int right,int a)
16 {
17     if(left==right)
18     {
19         tre[ind]-=a;
20         return left;
21     }
22     int mid=(left+right)>>1,ans;
23     if(tre[ind*2]>=a) ans=finda(ind*2,left,mid,a);
24     else ans=finda(ind*2+1,mid+1,right,a);
25     tre[ind]=max(tre[ind*2],tre[ind*2+1]);
26     return ans;
27 }
28 int main()
29 {
30     int h,w,n;
31     while(~scanf("%d%d%d",&h,&w,&n))
32     {
33         int minn=min(h,n);
34         build(1,1,minn,w);
35         while(n--)
36         {
37             int a;scanf("%d",&a);
38             if(tre[1]<a) printf("-1\n");
39             else printf("%d\n",finda(1,1,minn,a));
40         }
41     }
42 }

1004 Monkey Party

http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=6054

1005 Happy Necklace

http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=6064

一点都不happy的项链,f(2)=3, f(3)=4, f(4)=6, f(n)=f(n-1)+f(n-2),矩阵快速幂。

  1    1    0

A = 0    0    1

  1    0    0

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 const int mod=1e9+7;
 5 struct p{
 6     ll rol,col;
 7     ll matris[3][3];
 8 };
 9 p Matris(p a,p b)
10 {
11     p tem;
12     memset(tem.matris,0,sizeof(tem.matris));
13     for(ll i=0;i<3;i++)
14         for(ll j=0;j<3;j++)
15             for(ll k=0;k<3;k++)
16             {
17                 tem.matris[i][j]+=a.matris[i][k]*(b.matris[k][j]%mod);
18                 tem.matris[i][j]%=mod;
19             }
20     return tem;
21 }
22 ll quick_mi(ll n)
23 {
24     p res,tep;
25     res.matris[0][0]=6,res.matris[0][1]=4,res.matris[0][2]=3;
26     for(int i=1;i<=2;i++)
27         for(int j=0;j<=2;j++)
28             res.matris[i][j]=0;
29     tep.matris[0][0]=1,tep.matris[0][1]=1,tep.matris[0][2]=0;
30     tep.matris[1][0]=0,tep.matris[1][1]=0,tep.matris[1][2]=1;
31     tep.matris[2][0]=1,tep.matris[2][1]=0,tep.matris[2][2]=0;
32     while(n)
33     {
34         if(n&1) res=Matris(res,tep);
35         tep=Matris(tep,tep);
36         n/=2;
37     }
38     return res.matris[0][0]%mod;
39 }
40 int main()
41 {
42     int t;scanf("%d",&t);
43     while(t--)
44     {
45         ll n;scanf("%lld",&n);
46         if(n==2) printf("3\n");
47         else if(n==3) printf("4\n");
48         else if(n==4) printf("6\n");
49         else printf("%lld\n",quick_mi(n-4));
50     }
51 }

1006 CA Loves GCD

http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=6068

我不爱

1007 Squarefree number

http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=6071

欧拉筛把10^6内的素数标下,如果除了两个或以上就No。素数除完了可能还很大,就要看是不是完全平方数,否则n就是一个很大的素数或者两个大于10^6的素数乘积。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 #define N 1000005
 5 int prim[N+5];
 6 int vis[N+5],cnt=0;
 7 void init()
 8 {
 9     vis[0]=vis[1]=1;
10     for(int i=0;i<N;i++)
11         if(!vis[i])
12         {
13             prim[cnt++]=i;
14             for(ll j=(ll)i*i;j<N;j+=i) vis[j]=1;
15         }
16 }
17 int main()
18 {
19     init();
20     int t;scanf("%d",&t);
21     for(int kk=1;kk<=t;kk++)
22     {
23         int flag=1;
24         ll n;scanf("%lld",&n);
25         for(int i=0;i<cnt;i++)
26         {
27             if(n%prim[i]==0)
28             {
29                 int num=0;
30                 while(n%prim[i]==0) n/=prim[i],num++;
31                 if(num>=2)
32                 {
33                     flag=0;
34                     printf("Case %d: No\n",kk);
35                     break;
36                 }
37             }
38         }
39         if(n>1000000&&flag)
40         {
41             int q=(int)sqrt(n);
42             if((ll)q*q==n) printf("Case %d: No\n",kk);
43             else printf("Case %d: Yes\n",kk);
44             continue;
45         }
46         if(flag) printf("Case %d: Yes\n",kk);
47     }
48 }

1008 Gym Class

http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=6081

选自己前面包括自己的最小id作为评分,记录一下要加上的评分minn。没有要求的入度为0进队列。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 const int MAXN=1e9;
 5 const int N=100005;
 6 vector<int> vec[N];
 7 int inde[N];
 8 priority_queue<int> q;
 9 void init()
10 {
11     memset(inde,0,sizeof(inde));
12     for(int i=1;i<=N;i++) vec[i].clear();
13     while(!q.empty()) q.pop();
14 }
15 int main()
16 {
17     int t;scanf("%d",&t);
18     while(t--)
19     {
20         ll ans=0,minn=MAXN;
21         init();
22         int n,m;scanf("%d%d",&n,&m);
23         while(m--)
24         {
25             int a,b;scanf("%d%d",&a,&b);
26             inde[b]++;
27             vec[a].push_back(b);
28         }
29         for(int i=1;i<=n;i++)
30             if(!inde[i]) q.push(i);
31         while(!q.empty())
32         {
33             ll p=q.top();q.pop();
34             minn=min(p,minn);
35             ans+=minn;
36             for(int i=0;i<vec[p].size();i++)
37             {
38                 inde[vec[p][i]]--;
39                 if(inde[vec[p][i]]==0) q.push(vec[p][i]);
40             }
41         }
42         printf("%lld\n",ans);
43     }
44 }

原文地址:https://www.cnblogs.com/Aaaamber/p/11788312.html

时间: 2024-10-28 03:19:43

2019/10/27 TZOJ的相关文章

2019.10.27 头条面试准备

2019.10.27 头条面试准备 个人简历 2019.06 - 至今上海华为开发工程师 实习部门:5G开发部 项目:网站开发.运维开发.数据处理 2019.06至今华为实习 Python+Django+Javascript+Nginx+rabbitMQ+ELK 基于 Django 框架使用 Python 开发网站基础进程监控系统,实现进程异常记录.进程异常自动恢复.发送告警邮件,并且用 Web 界面进行展示和管理.整个框架由本人独立设计完成并上线,保证了部门 Web 的稳定. 使用Python

2019.10.27 GMOJ6390 黑箱

纪中的联赛模拟 Description 在$wzq$面前摆着一个大箱子,箱子被划分成$n*m$个格子,箱子的侧面是透明的,箱子很高,所以$wzq$只能从侧面观察 现在,箱子中有些格子被不透明的物体塞满了,由于$wzq$只能从侧面看,所以他只知道又哪些行和列又不透明的格子,求有多少种方案满足$wzq$看到的情况,对$ 998244353 $取模 $wzq$对$OI$的造诣太深了,但是他懒得算,所以找到了你这个工具人 对于前$10\%$的数据,保证$1<=n,m<=5$ 对于前$30\%$的数据,

2019.10.27

交换机lDps 路由机lp 组件R0uter 传输控制协议www 互联网协议COmp0nent 万维网TCP 人侵检测和防御系统R0uter 超文本输控制协议ⅠDS 电子邮件Netw0rKsαfety 文件传输协议FⅰrewαⅡ 防火墙OSl 人侵检测系统FTp 网络安全0Sl 开庭系统互联E一mαil Ch00Sethepr0perwOrdst0fiⅡⅰntheblαnKs ALANⅰsuSedforC0mmuni(αtiO川sinasMa″C0mmun:tyⅰη~hⅰCnresonrCes,

【2019.10.27】

题目 题解 T1是道睿智题,理解题意花了20min,出题人的样例给了相当没给,用自己的话翻译了下题面后发现没注意到a1也可以更改,于是就想到了读入时线型预处理下每组等差数列,结构体记下末尾的序号.编号和数列长度:再枚举数列,合并算len,ans就是max(ans,ans+len): #include<bits/stdc++.h> #define ri register int #define ll long long #define For(i,l,r) for(ri i=l;i<=r;

10.23 linux任务计划cron10.24chkconfig工具10.25 systemd管理服务10.26 unit介绍 10.27 target介绍

- 10.23 linux任务计划cron - 10.24 chkconfig工具 - 10.25 systemd管理服务 - 10.26 unit介绍 - 10.27 target介绍 - 扩展 1. anacron http://blog.csdn.net/strikers1982/article/details/4787226  2. xinetd服(默认机器没有安装这个服务,需要yum install xinetd安装) http://blog.sina.com.cn/s/blog_46

一周随笔--15.10.27

一周新知识点记录(15.10.27) 一.不规则按钮OBShapedButton 常规按钮都是一个矩形区域,即使设置了按钮layer的cornerRadious,能响应点击事件的依旧是整个矩形区域. OBShapedButton是开源的第三方库,直接继承自UIButton,直接使用即可.它的响应区域只限定在button的图片或者背景图片区域,周围空出的区域无法响应. 二.sendActionsForControlEvents UIButton的实例方法,通过代码手动发送按钮的点击事件触发按钮的响

背水一战 Windows 10 (27) - 控件(文本类): TextBlock

原文:背水一战 Windows 10 (27) - 控件(文本类): TextBlock [源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 控件(文本类) TextBlock 示例1.TextBlock 的示例 1Controls/TextControl/TextBlockDemo1.xaml <Page x:Class="Windows10.Controls.TextControl.TextBlockDemo1" xmlns="http://

2019.08.27学习整理

2019.08.27学习整理 什么是继承 是一种新建类的方式,继承了一个类,类中的属性和方法就在子类中 父类/基类 子类/派生类 新式类:只要继承了object类,就是新式类,在python3中,默认继承object类 -Python3中:默认继承object class A: pass -python2中,需要显示的指定继承object --经典类:没有继承object的类,就是经典类 -python3中没有经典类 -python2中才有 利用继承减少代码冗余 #继承重用父类方法方式一:指名道

2019.10.19初赛滚粗后的日子

写在故事的前面的话 人生中第一次考CSP-S,然后考得有点自闭,我想我写这篇blog并不是想要说AFO之类的话,相反,我觉得自己应该继续坚持下去的丫子.自己以前欠了很多知识,以前是自己初中时期的不认真,现在我就把自己当成是高一才学OI的萌新,忘记过去对自己的一些期望,重新开始自己的OI生涯. 2019.10.19 今天在自闭完了之后还是逐渐接受了初赛没有多大几率过的事实,开始复习起之前学的东西.首先,今天开始复习树形DP(入门).list如下: Park visit (已过) 没有上司的舞会 (