Dom4j
Dom4j
http://baike.baidu.com/link?url=2XOnr06saKUd-9By1GyPxIolXMQhf_C-CnMFll_yhtR4m00i27zphbkI5-dGpwEVjuKbkdosTYmNMXc4OA31ba
1
- package ec.export.checksheet;
- import java.io.File;
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import net.sf.jasperreports.engine.JREmptyDataSource;
- import net.sf.jasperreports.engine.JRException;
- import net.sf.jasperreports.engine.JRPrintPage;
- import net.sf.jasperreports.engine.JasperFillManager;
- import net.sf.jasperreports.engine.JasperPrint;
- import net.sf.jasperreports.engine.JasperReport;
- import net.sf.jasperreports.engine.util.JRLoader;
- import org.dom4j.Document;
- import org.dom4j.DocumentException;
- import org.dom4j.io.SAXReader;
- import ec.export.ECReportHelper;
- import ec.utils.Dom4jXml;
- public class AddCheckSheet {
- public Dom4jXml dj = new Dom4jXml();
- String TEMPLATES_PATH = "ec/export/resources/";
- public JasperPrint FormTotalPage(JasperPrint jp,org.w3c.dom.Document document,Map mSelectCheckSheet,Map mCheckSheetAutoFill){
- List l=new ArrayList();
- try {
- l=CheckSheetReadXml(document,mCheckSheetAutoFill);
- } catch (Exception e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- // String jasperpatha=getClass().getResource("")+"checksheeta.jasper";
- // jasperpatha=jasperpatha.replaceAll("file:/", "");
- // String jasperpathb=getClass().getResource("")+"checksheetb.jasper";
- // jasperpathb=jasperpathb.replaceAll("file:/", "");
- //ECReportHelper.locateResource("");
- String jasperpatha=TEMPLATES_PATH+"checksheeta.jasper";
- String jasperpathb=TEMPLATES_PATH+"checksheetb.jasper";
- for(int i=;i<l.size();i++){
- // String ec.export.ECJobReporter.buildStylesFile();
- // ========for checksheeta.jasper=======
- JasperPrint jasperprint = new JasperPrint();
- try {
- //JasperPrint jasperPrint = JasperFillManager.fillReport(getClass().getResourceAsStream("periodo.jasper"), parameters, con);
- //jasperprint = JasperFillManager.fillReport(JRLoader.getResourceInputStream(jasperpathb), (Map)l.get(i));
- jasperprint = JasperFillManager.fillReport(JRLoader.getResourceInputStream(jasperpatha), (Map)l.get(i), new JREmptyDataSource());
- //jasperprint = JasperFillManager.fillReport(ClassLoader.getSystemResourceAsStream(jasperpathb), (Map)l.get(i), new JREmptyDataSource());
- //jasperprint = JasperFillManager.fillReport(getClass().getResourceAsStream(jasperpathb), (Map)l.get(i), new JREmptyDataSource());
- //jasperprint = JasperFillManager.fillReport(jasperpathb, (Map)l.get(i), new JREmptyDataSource());
- } catch (Exception e) {
- e.printStackTrace();
- }
- //System.out.println(" before jp: "+jp.getPages().size());
- multipageLinking(jp,jasperprint);
- //System.out.println(" after jp: "+jp.getPages().size());
- // =======for checksheetb.jasper=======
- jasperprint = new JasperPrint();
- try {
- //jasperprint = JasperFillManager.fillReport(JRLoader.getResourceInputStream(jasperpathb), (Map)l.get(i));
- jasperprint = JasperFillManager.fillReport(JRLoader.getResourceInputStream(jasperpathb), (Map)l.get(i), new JREmptyDataSource());
- //jasperprint = JasperFillManager.fillReport(ClassLoader.getSystemResourceAsStream(jasperpathb), (Map)l.get(i), new JREmptyDataSource());
- //jasperprint = JasperFillManager.fillReport(getClass().getResourceAsStream(jasperpathb), (Map)l.get(i), new JREmptyDataSource());
- //jasperprint = JasperFillManager.fillReport(jasperpathb, (Map)l.get(i), new JREmptyDataSource());
- } catch (Exception e) {
- e.printStackTrace();
- }
- //System.out.println(" before jp: "+jp.getPages().size());
- multipageLinking(jp,jasperprint);
- //System.out.println(" after jp: "+jp.getPages().size());
- // JasperPrint result = JasperFillManager.fillReport(
- // ECReportHelper.locateResource(JOB_TEMPLATE),
- // params
- // );
- /*
- // ========for checksheeta.jasper=======
- JasperPrint jasperprint = new JasperPrint();
- try {
- jasperprint = JasperFillManager.fillReport(jasperpatha, (Map)l.get(i), new JREmptyDataSource());
- } catch (Exception e) {
- e.printStackTrace();
- }
- //System.out.println(" before jp: "+jp.getPages().size());
- multipageLinking(jp,jasperprint);
- //System.out.println(" after jp: "+jp.getPages().size());
- // =======for checksheetb.jasper=======
- jasperprint = new JasperPrint();
- try {
- jasperprint = JasperFillManager.fillReport(jasperpathb, (Map)l.get(i), new JREmptyDataSource());
- } catch (Exception e) {
- e.printStackTrace();
- }
- //System.out.println(" before jp: "+jp.getPages().size());
- multipageLinking(jp,jasperprint);
- //System.out.println(" after jp: "+jp.getPages().size());
- */
- }
- return jp;
- }
- private JasperPrint multipageLinking(JasperPrint page1, JasperPrint page2) {
- List pages = page2.getPages();
- for (int count = ; count <pages.size(); count++) {
- page1.addPage((JRPrintPage) pages.get(count));
- }
- return page1;
- }
- // for checkSheet Print
- public List CheckSheetReadXml(org.w3c.dom.Document doc,Map mCheckSheetAutoFill) throws Exception{
- Document document=dj.parse(doc);
- List pl=new ArrayList();
- //count product num
- List list = document.selectNodes("/report/job/product");
- int num = list.size();
- for(int i=;i<=num;i++)
- {
- Map mproduct=new HashMap();
- //0 select_date
- String xpathstr="/report/job/@select_date";
- if(!dj.getContentString(document,xpathstr).equals("")){
- mproduct.put("cs_Date", dj.getContentString(document,xpathstr));
- }
- xpathstr="/report/job/createdDt";
- if(!dj.getContentString(document,xpathstr).equals("")){
- mproduct.put("cs_Date", dj.getContentString(document,xpathstr));
- }
- //model 1 AT3ARF1R AT5CRF4R
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Screw Compressor Air Cooled Package Chiller']/row/field[name='Model #']/value";
- String s1=dj.getContentString(document,xpathstr);
- //for acds in spec
- if(s1.equals("")){
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Scroll Compressor Air Cooled Package Chiller']/row/field[name='Model #']/value";
- s1=dj.getContentString(document,xpathstr);
- }
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Screw Compressor Air Cooled Package Chiller']/row/field[name='Component code']/value";
- String tmep=dj.getContentString(document,xpathstr);
- if(tmep==""){}else{
- tmep=tmep.substring();
- String tempbefore=tmep.substring();
- String tempafter=tmep.substring(,);
- tmep=tempbefore+tempafter;
- }
- mproduct.put("cs_Model", s1+tmep);
- xpathstr="/report/job/product["+i+"]/qty";
- mproduct.put("cs_Qty", dj.getContentString(document,xpathstr));
- //evap 2
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator']/col1/field[contains(name,'Entering fluid temp')]/value";
- mproduct.put("cs_Evap_Entering_fluid_temp", dj.getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator']/col1/field[contains(name,'Fluid flow rate')]/value";
- mproduct.put("cs_Evap_Fluid_flow_rate", dj.getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator']/col2/field[contains(name,'Fouling factor')]/value";
- mproduct.put("cs_Evap_Fouling_factor", dj.getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator']/col2/field[contains(name,'Leaving fluid temp')]/value";
- mproduct.put("cs_Evap_Leaving_fluid_temp", dj.getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator']/col1/field[contains(name,'Fluid')]/value";
- String fluidstr=dj.getContentString(document,xpathstr);
- if(fluidstr!=""&& !fluidstr.equals("")&& fluidstr.contains("%")){
- fluidstr=fluidstr.substring(fluidstr.indexOf("%")+)+" / "+fluidstr.substring(, fluidstr.indexOf("%")+);
- }
- mproduct.put("cs_Evap_Fluid",fluidstr );
- //mproduct.put("cs_Evap_Fluid", dj.getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator']/col1/field[contains(name,'Number of passes')]/value";
- mproduct.put("cs_Evap_Number_of_passes", dj.getContentString(document,xpathstr));
- //cond 3
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Condenser']/col1/field[contains(name,'Design ambient')]/value";
- mproduct.put("cs_Cond_Design_ambient", dj.getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Condenser']/col2/field[contains(name,'Entering fluid temp')]/value";
- mproduct.put("cs_Cond_Entering_fluid_temp", dj.getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Condenser']/col2/field[contains(name,'Fluid flow rate')]/value";
- mproduct.put("cs_Cond_Fluid_flow_rate", dj.getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Condenser']/col2/field[contains(name,'Fouling factor')]/value";
- mproduct.put("cs_Cond_Fouling_factor", dj.getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Condenser']/col2/field[contains(name,'Leaving fluid temp')]/value";
- mproduct.put("cs_Cond_Leaving_fluid_temp", dj.getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Condenser']/col2/field[contains(name,'Fluid')]/value";
- mproduct.put("cs_Cond_Fluid", dj.getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Condenser']/col2/field[contains(name,'Number of passes')]/value";
- mproduct.put("cs_Cond_Number_of_passes", dj.getContentString(document,xpathstr));
- //4 Cooling Conditions of service
- //<name>Capacity (Tons)</name>
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Conditions of service']/col1/field[contains(name,'Capacity')]/value";
- mproduct.put("cs_Capacity", dj.getContentString(document,xpathstr));
- //<name>Energy efficiency (kW/Ton)</name>
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Conditions of service']/col2/field[contains(name,'Compressor power')]/value";
- mproduct.put("cs_Energy_efficiency", dj.getContentString(document,xpathstr));
- //5<name>Unit power supply</name>
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Electrical characteristics']/col1/field[contains(name,'Unit power supply')]/value";
- mproduct.put("cs_Unit_power_supply", dj.getContentString(document,xpathstr));
- //6<name>Refrigerant</name>//<value>R134a</value>
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Physical Specifications']/col2/field[contains(name,'Refrigerant')]/value";
- mproduct.put("cs_Refrigerant", dj.getContentString(document,xpathstr));
- //add pictureleftheader
- String pic_left_header=TEMPLATES_PATH+"leftheader-cs.JPG";
- //pic_left_header=pic_left_header.replaceAll("file:/", "");
- mproduct.put("cs_pic_left_header", pic_left_header);
- mproduct.putAll((Map) mCheckSheetAutoFill.get(i));
- pl.add(mproduct);
- }
- return pl;
- }
- // public static void main(String[] args) throws Exception {
- // Dom4jXml dj = new Dom4jXml();
- // AddCheckSheet acs=new AddCheckSheet();
- // SAXReader saxReader = new SAXReader();
- // Document document;
- // try {
- // document = saxReader.read(new File("D:/Task/draw_cs3/20141218/wcfx36_more.xml"));
- //
- // acs.CheckSheetReadXml(dj.parse(document));
- // } catch (DocumentException e) {
- // // TODO Auto-generated catch block
- // e.printStackTrace();
- // }
- // }
- }
2
- package ec.utils;
- import java.io.File;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import org.dom4j.Attribute;
- import org.dom4j.Document;
- import org.dom4j.DocumentException;
- import org.dom4j.Element;
- import org.dom4j.io.SAXReader;
- public class Dom4jXml {
- static boolean debugf=true;
- public static void main(String[] args) throws Exception {
- Dom4jXml dj = new Dom4jXml();
- SAXReader saxReader = new SAXReader();
- Document document;
- try {
- document = saxReader.read(new File("D:/Task/draw_cs3/20141218/wcfx36_more.xml"));
- dj.ReadXml(parse(document));
- } catch (DocumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- //for checkSheet Print
- public List ReadXml(org.w3c.dom.Document doc) throws Exception{
- Document document=parse(doc);
- List pl=new ArrayList();
- //count product num
- List list = document.selectNodes("/report/job/product");
- int num = list.size();
- for(int i=;i<=num;i++)
- {
- Map mproduct=new HashMap();
- //0 select_date
- String xpathstr="/report/job/@select_date";
- mproduct.put("cs_Date", getContentString(document,xpathstr));
- //model 1 AT3ARF1R AT5CRF4R
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Screw Compressor Water Cooled Package Chiller']/row/field[name='Model #']/value";
- String s1=getContentString(document,xpathstr);
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Screw Compressor Water Cooled Package Chiller']/row/field[name='Component code']/value";
- mproduct.put("cs_Model", s1+getContentString(document,xpathstr));
- //evap 2
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator_Condenser']/col1/field[contains(name,'Entering fluid temp')]/value";
- mproduct.put("cs_Evap_Entering_fluid_temp", getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator_Condenser']/col1/field[contains(name,'Fluid flow rate')]/value";
- mproduct.put("cs_Evap_Fluid_flow_rate", getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator_Condenser']/col1/field[contains(name,'Fouling factor')]/value";
- mproduct.put("cs_Evap_Fouling_factor", getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator_Condenser']/col1/field[contains(name,'Leaving fluid temp')]/value";
- mproduct.put("cs_Evap_Leaving_fluid_temp", getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator_Condenser']/col1/field[contains(name,'Fluid')]/value";
- mproduct.put("cs_Evap_Fluid", getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator_Condenser']/col1/field[contains(name,'Number of passes')]/value";
- mproduct.put("cs_Evap_Number_of_passes", getContentString(document,xpathstr));
- //cond 3
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator_Condenser']/col2/field[contains(name,'Entering fluid temp')]/value";
- mproduct.put("cs_Cond_Entering_fluid_temp", getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator_Condenser']/col2/field[contains(name,'Fluid flow rate')]/value";
- mproduct.put("cs_Cond_Fluid_flow_rate", getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator_Condenser']/col2/field[contains(name,'Fouling factor')]/value";
- mproduct.put("cs_Cond_Fouling_factor", getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator_Condenser']/col2/field[contains(name,'Leaving fluid temp')]/value";
- mproduct.put("cs_Cond_Leaving_fluid_temp", getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator_Condenser']/col2/field[contains(name,'Fluid')]/value";
- mproduct.put("cs_Cond_Fluid", getContentString(document,xpathstr));
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Evaporator_Condenser']/col2/field[contains(name,'Number of passes')]/value";
- mproduct.put("cs_Cond_Number_of_passes", getContentString(document,xpathstr));
- //4 Cooling Conditions of service
- //<name>Capacity (Tons)</name>
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Cooling Conditions of service']/col1/field[contains(name,'Capacity')]/value";
- mproduct.put("cs_Capacity", getContentString(document,xpathstr));
- //<name>Energy efficiency (kW/Ton)</name>
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Cooling Conditions of service']/col2/field[contains(name,'Energy efficiency')]/value";
- mproduct.put("cs_Energy_efficiency", getContentString(document,xpathstr));
- //5<name>Unit power supply</name>
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Electrical characteristics']/col1/field[contains(name,'Unit power supply')]/value";
- mproduct.put("cs_Unit_power_supply", getContentString(document,xpathstr));
- //6<name>Refrigerant</name>//<value>R134a</value>
- xpathstr="/report/job/product["+i+"]/performanceData/group[name='Physical Specifications']/col2/field[contains(name,'Refrigerant')]/value";
- mproduct.put("cs_Refrigerant", getContentString(document,xpathstr));
- //getContent(document,xpathstr);
- pl.add(mproduct);
- }
- return pl;
- }
- public static Document parse(org.w3c.dom.Document doc) throws Exception {
- if (doc == null) {
- return (null);
- }
- org.dom4j.io.DOMReader xmlReader = new org.dom4j.io.DOMReader();
- return (xmlReader.read(doc));
- }
- public static org.w3c.dom.Document parse(Document doc) throws Exception {
- if (doc == null) {
- return (null);
- }
- java.io.StringReader reader = new java.io.StringReader(doc.asXML());
- org.xml.sax.InputSource source = new org.xml.sax.InputSource(reader);
- javax.xml.parsers.DocumentBuilderFactory documentBuilderFactory = javax.xml.parsers.DocumentBuilderFactory
- .newInstance();
- javax.xml.parsers.DocumentBuilder documentBuilder = documentBuilderFactory
- .newDocumentBuilder();
- return (documentBuilder.parse(source));
- }
- public String getContentString(Document document,String xpathstr){
- List list = document.selectNodes(xpathstr);
- String result="";
- Iterator iter = list.iterator();
- iter = list.iterator();
- if (iter.hasNext()) {
- Object o=iter.next();
- if(o instanceof Attribute){
- Attribute attribute = (Attribute) o;
- //hm.put(attribute.getName(),attribute.getValue());
- result=attribute.getValue();
- if(debugf){
- System.out.println(attribute.getName()+":"+attribute.getValue());
- }
- }
- if(o instanceof Element){
- Element element = (Element) o;
- String name = element.getName();
- String value = element.getText();
- //hm.put(name, value);
- result=value;
- if(debugf){
- System.out.println(name+":"+value);
- }
- }
- } else {
- return result;
- }
- return result;
- }
- public Map<String,String> getContent(Document document,String xpathstr){
- List list = document.selectNodes(xpathstr);
- Map<String,String> hm=new HashMap();
- Iterator iter = list.iterator();
- iter = list.iterator();
- if (iter.hasNext()) {
- Object o=iter.next();
- if(o instanceof Attribute){
- Attribute attribute = (Attribute) o;
- hm.put(attribute.getName(),attribute.getValue());
- if(debugf){
- System.out.println(attribute.getName()+":"+attribute.getValue());
- }
- }
- if(o instanceof Element){
- Element element = (Element) o;
- String name = element.getName();
- String value = element.getText();
- hm.put(name, value);
- if(debugf){
- System.out.println(name+":"+value);
- }
- }
- } else {
- }
- return hm;
- }
- }
Dom4j的更多相关文章
- XML技术之DOM4J解析器
由于DOM技术的解析,存在很多缺陷,比如内存溢出,解析速度慢等问题,所以就出现了DOM4J解析技术,DOM4J技术的出现大大改进了DOM解析技术的缺陷. 使用DOM4J技术解析XML文件的步骤? pu ...
- 四种解析和创建方式(DOM,SAX,DOM4J,JDOM)
一.先导入jar包 DOM基于树形,SAX基于事件,DOM4J和JDOM基于底层API 二.代码如下 1 package com.sxt.test; import java.io.File; impo ...
- dom4j的小例子
1.要解析的xml文件book.xml <?xml version="1.0" encoding="UTF-8"?> <books> & ...
- Dom4J解析技术
前面的话 本文主要讲解有关Dom4j技术和xpath配合下的优化! 目录: 为什么需要Dom4J DOM4J怎么用 xpath怎么配合DOM4J 一 为什么需要Dom4J 一 ...
- Dom4j解析xml文件
dom4j是一个Java的XML API,类似于jdom,用来读取的XML文件,由于它是将文件解析完存放在内存当中的,所以不适合解析大的XML文件,但就方便性和性能方面,一定程度要优于JDK中Domc ...
- java dom4j封装和解析XML
package org.scbit.lsbi.scp.utils; import java.util.ArrayList; import java.util.List; import org.dom4 ...
- xml之dom4j解析
* 使用dom4j解析xml 实例在java520里面 TextDom4j * dom4j,是一个组织,针对xml解析,提供解析器dom4j * dom4j不是javase的一部分,想要使用第一步需要 ...
- 使用dom4j读取xml连接数据库与之单例模式
使用dom4j读取xml ,加入jar包 dom4j-1.6.1.jar jaxen-1.1-beta-6.jar public class XmlConfigReader { //懒汉式,延迟加载 ...
- dom4j解析示例
收藏信息.xml <?xml version="1.0" encoding="GB2312" standalone="no"?> ...
- java DOM4J 读取XML
最近学习Java,在处理XML文档的时候,查阅相关资料,发现了DOM4J这个jre库,相对C#的XML处理来说,功能还算是跟得上 下面展示一篇我自己写的一个XML读取测试 import java.ut ...
随机推荐
- 铭飞MCMS内容管理系统完整开源版J2EE代码
当前版本:4.6.0铭飞MS官网:http://ms.mingsoft.net官网同时提供一键运行版本下载,请步移官网....QQ交流群号1:221335098很多人说铭飞MCMS是大天朝国唯一完整开 ...
- 关于遍历javascript 中的json串浏览器输出的结果不统一的情况
我们在做项目的时候经常会用到javascript的json. 首先说一下javascript的json串是什么,json串属于javascript的一个对象,有键和值对应的对象. 一般的格式是: a ...
- Regionals 2012 :: HangZhou
题目传送门排行榜 一个人做了12年北大出的题,自己还是太弱了,图论的知识忘光光,最小生成树裸题写不来,Dijkstra TLE不知道用SPFA. 简单几何(点到线段的距离) + 三分 B Steali ...
- POJ2516 Minimum Cost(最小费用最大流)
一开始我把每个店主都拆成k个点,然后建图..然后TLE.. 看题解= =哦,愚钝了,k个商品是独立的,可以分别跑k次最小费用最大流,结果就是k次总和.. #include<cstdio> ...
- Noi2011 : 智能车比赛
假设S在T左边,那么只能往右或者上下走 f[i]表示S到i点的最短路 f[i]=min(f[j]+dis(i,j)(i能看到j)) 判断i能看到j就维护一个上凸壳和一个下凸壳 时间复杂度$O(n^2) ...
- TYVJ P1051 选课 Label:多叉转二叉&&树形dp(虐心♥)
描述 学校实行学分制.每门的必修课都有固定的学分,同时还必须获得相应的选修课程学分.学校开设了N(N<300)门的选修课程,每个学生可选课程的数量M是给定的.学生选修了这M门课并考核通过就能获得 ...
- JAVA操作COOKIE
JAVA操作COOKIE 1.设置Cookie Cookie cookie = new Cookie("key", "value"); cookie.setMa ...
- <META http-equiv=X-UA-Compatible content=IE=EmulateIE7>
未来兼容性中的 META 标记和锁定 注意:本文档是预备文档,随时可能变更. 对于 Web 开发人员来说,文本兼容性是一个要考虑的重要问题.Windows Internet Explorer 8 引入 ...
- python 面向对象的三大特征之 继承
#继承 #object 基类,是python定义的所有类的父类 #经典类:不继承object的类称作经典类 #新式类:继承object的类称作新式类 #python 3.x统一为新式类 #经典类是类对 ...
- Apache开启不了------The requested operation has failed!
1.这个问题通常是由于端口被占用了,cmd输入netstat -ano查看端口号,根据端口号80的程序的pid在任务管理器下杀掉它. 2.我遇到这个问题不是这个原因.我由于刚配置了虚拟目录.查看虚拟目 ...